Sobes.tech
Junior — Middle

Kāpēc ir svarīgi pārdefinēt metodi equals() savā klasē?

sobes.tech AI

Atbilde no AI

equals() metodes pārrakstīšana ir svarīga, lai pareizi salīdzinātu objektus pēc satura, nevis pēc atsauces. Noklusējuma Java equals() metode salīdzina atsauces (t.i., pārbauda, vai mainīgie norāda uz to pašu objektu).

Ja vēlaties uzskatīt divus objektus par vienādiem, kad atsevišķi lauki (piemēram, identifikators, vārds utt.) sakrīt, jums jā pārraksta equals().

Piemērs:

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

Bez equals() pārrakstīšanas kolekcijas, piemēram, HashSet, vai meklēšanas metodes var nedarboties pareizi.