Remplacer méthode equals

newbie question ici:

Donc, dans mon université devoirs que j'ai à remplacer la classe de l'objet est égale à la méthode pour une nouvelle classe créée par moi.

La nouvelle de la classe "Produit", chaque produit a un attribut "id" qui est unique. Donc, c'est comment je Surdéfini:

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

Le truc, c'est que cela est de 1,5 points sur 10 et il m'a fait suspicius être facile. J'ai donc commencé à chercher et j'ai trouvé des choses comme:

@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;
   }

Qui n'ont pas de sens pour moi, parce que je pense que le dernier vérifier si tous les autres fi des restrictions. Qu'avez-vous pensez?Qui est la meilleure façon de Remplacer cette méthode?

Merci!

Le contrat est égal, dit que tous les objets qui sont égaux doivent avoir le même code de hachage. Donc, si vous remplacez equals() il est nécessaire de redéfinir hashCode().

OriginalL'auteur Iñaki | 2011-06-15