Mein Lehrer hat mir die Lösung eines gleichwertigen Beispiels gegeben, und die geht so:
@Override
public boolean equals(Object o)
{
if (this == o) return true;
boolean result = false;
if (o instanceof Product)
{
Product other = (Product)o;
result = this.id == other.id;
}
return result;
}
die Methode wird für die Klasse Product überschrieben, die ein Attribut id hat, das für jedes Produkt eindeutig ist. Aber ich verstehe die Bedeutung des ersten if nicht, ich denke, dass das zweite if bereits die Einschränkungen des ersten if überprüft. Kann mir jemand ein Beispiel dafür geben, dass dieser Code funktioniert, und dieser hier nicht? Vielen Dank!
@Override
public boolean equals(Object o)
{
boolean result = false;
if (o instanceof Product)
{
Product other = (Product)o;
result = this.id == other.id;
}
return result;
}