Sobes.tech
Junior — Middle

Ako porovnáva metóda equals dva objekty v Jave?

sobes.tech AI

Odpoveď od AI

Metóda equals v Jave sa používa na porovnanie dvoch objektov z hľadiska ich zmysluplnej rovnosti. Predvolene, ak nie je prepísaná, porovnáva referencie (t.j. kontroluje, či objekty ukazujú na rovnaký exemplár).

Pri prepise equals zvyčajne porovnávame obsah objektov, napríklad hodnoty polí.

Typická implementácia equals zahŕňa:

  • Kontrolu rovnosti odkazov (this == obj)
  • Kontrolu na null a kompatibilitu tried
  • Porovnanie významných polí objektov

Príklad:

@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) && field2 == other.field2;
}

Je tiež dôležité prepísať hashCode, keď prepíšete equals, aby ste zachovali kontrakt medzi týmito metódami.