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.