Sobes.tech
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.