Ich versuche gerade, 2 Point-Objekte mittels equals zu vergleichen. Obwohl ich äquivalente Werte eingebe, ist equals der Ansicht, dass meine beiden Objekte nicht der Fall ist.
Der code wird anstandslos kompiliert, die Ausführung ist ebenso reibungslos. Eben bis auf dem Umstand, dass das Resultat nicht meinen Erwartungen entspricht. Ich erhalte:
Die zwei Objekte sind nicht aequivalent: Point [x=7, y=99] unterscheidet sich von Point [x=7, y=99]
Ich kann meinen Denkfehler nicht finden.
Und da ich keine Fehlermeldung erhalte, kann ich nicht danach googeln.
Was ich über equals weiss:
- die equals-Methode wird in der Klasse definiert. Die Klasse importiere ich in diesem Fall hier. Dort ist, laut Dokumentation, ein equals integriert.
- equals vergleicht die Objekte, NICHT die Referenzvariable. In meinem Fall werden also die int-Variablen der beiden Objekte verglichen.
Vielen Dank für eure Hilfe!
import java.awt.*;
class kapitel27verdammtesEquals
{
public static void main ( String arg[] )
{
Point pointA = new Point( 7, 99 ); // erstes Point-Objekt
Point pointB = new Point( 7, 99 ); // zweites Point-Objekt
if ( pointA.equals( pointB ) )
System.out.println("Die zwei Objekte enthalten die gleichen Daten: " + pointA );
else
System.out.println("Die zwei Objekte sind nicht aequivalent: " + pointA + " unterscheidet sich von " + pointB);
}
}
Der code wird anstandslos kompiliert, die Ausführung ist ebenso reibungslos. Eben bis auf dem Umstand, dass das Resultat nicht meinen Erwartungen entspricht. Ich erhalte:
Die zwei Objekte sind nicht aequivalent: Point [x=7, y=99] unterscheidet sich von Point [x=7, y=99]
Ich kann meinen Denkfehler nicht finden.
Und da ich keine Fehlermeldung erhalte, kann ich nicht danach googeln.
Was ich über equals weiss:
- die equals-Methode wird in der Klasse definiert. Die Klasse importiere ich in diesem Fall hier. Dort ist, laut Dokumentation, ein equals integriert.
- equals vergleicht die Objekte, NICHT die Referenzvariable. In meinem Fall werden also die int-Variablen der beiden Objekte verglichen.
Vielen Dank für eure Hilfe!
import java.awt.*;
class kapitel27verdammtesEquals
{
public static void main ( String arg[] )
{
Point pointA = new Point( 7, 99 ); // erstes Point-Objekt
Point pointB = new Point( 7, 99 ); // zweites Point-Objekt
if ( pointA.equals( pointB ) )
System.out.println("Die zwei Objekte enthalten die gleichen Daten: " + pointA );
else
System.out.println("Die zwei Objekte sind nicht aequivalent: " + pointA + " unterscheidet sich von " + pointB);
}
}