Junior — Middle
De ce este important să suprascrii metoda equals() în propria ta clasă?
sobes.tech AI
Răspuns de la AI
Suprascrierea metodei equals() este importantă pentru compararea corectă a obiectelor după conținut, nu după referință. În mod implicit, în Java, metoda equals() compară referințele (adică verifică dacă variabilele indică același obiect).
Dacă doriți să considerați două obiecte egale atunci când anumite câmpuri coincid (de exemplu, identificator, nume etc.), trebuie să suprascrieți equals().
Exemplu:
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
MyClass other = (MyClass) obj;
return Objects.equals(field1, other.field1) &&
Objects.equals(field2, other.field2);
}
Fără suprascrierea equals(), colecțiile precum HashSet sau metodele de căutare pot funcționa incorect.