Überschreiben der equals-Methode

newbie-Frage hier:

So, in meinen Uni-Hausaufgaben muss ich das überschreiben der object-Klasse equals-Methode für eine neue Klasse von mir erstellt.

Die neue Klasse "Produkt" jedes Produkt hat ein Attribut "id" ist einzigartig. Also das ist, wie ich Overrided:

@Override
public boolean equals(Object obj) {
       final Product other = (Product) obj;
       if (id != other.id)
           return false;
       return true;
   }

Die Sache ist, dass dies zu tun ist 1,5 von 10 Punkten und es machte mich suspicius, einfach sein. So begann ich zu suchen und fand ich Dinge wie:

@Override
public boolean equals(Object obj) {
       if (this == obj)
           return true;
       if (obj == null)
           return false;
       if (getClass() != obj.getClass())
           return false;
       final Product other = (Product) obj;
       if (id != other.id)
           return false;
       return true;
   }

Die keinen Sinn ergeben für mich überhaupt, weil ich denke, dass die letzten wenn überprüfen Sie alle anderen ifs Einschränkungen. Was denken Sie?Was ist der bessere Weg, um diese Methode Überschreiben?

Dank!

Der Vertrag für gleich sagt, dass alle Objekte, die gleich sind, müssen den gleichen hashCode. Wenn Sie also überschreiben equals() überschreiben muss hashCode().

InformationsquelleAutor Iñaki | 2011-06-15

Schreibe einen Kommentar