L’égalité entre les objets est une notions importante
lorsque'on utilise des ORM comme Hibernate et pas que pareil pour les
TreeSet et TreeMap étant implémenté sous forme d'arbre binaire, il doit
comparer les objets entre eux pour les organiser en implémentant comparable et/ou comparator .
Hibernate utilise la notion de proxy (Voir la définition sur Wikipedia) .
Quand nous avons deux objets en mémoire, nous devrons
faire attention à ne pas comparer un proxy avec l’objet qu’il proxyfie.
Pour comparer sémantiquement deux
instances, la classe java.lang.Object est pourvue de la méthode equals que toute classe est libre de redéfinir en respectant les règles
suivantes :
- l'implémentation doit
être réflexive, symétrique, transitive et
cohérente, il est généralement
nécessaire de redéfinir hashCode lorsque equals est implémentée.
- les objets égaux doivent avoir des codes de hachage égaux
Aucun commentaire:
Enregistrer un commentaire
to criticize, to improve