Junior — Middle
Pouvez-vous expliquer ce que signifie la méthode equals dans le contexte de la comparaison d'objets en Java?
sobes.tech IA
Réponse de l'IA
En Java, la méthode equals est utilisée pour comparer le contenu de deux objets pour l'égalité. Par défaut, si elle n'est pas redéfinie, la méthode equals de la classe Object compare les références, c'est-à-dire vérifie si les deux variables pointent vers le même objet en mémoire.
Pour comparer des objets par valeur (par exemple, par les champs de la classe), il faut redéfinir la méthode equals. Il est important de respecter le contrat de la méthode : elle doit être réflexive, symétrique, transitive, cohérente et ne pas être égale à null.
Exemple de redéfinition de equals dans la classe Person :
public class Person {
private String name;
private int age;
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // comparaison avec soi-même
if (obj == null || getClass() != obj.getClass()) return false;
Person other = (Person) obj;
return age == other.age && Objects.equals(name, other.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
Ainsi, equals permet de comparer les objets par leur contenu, et non par leur référence.