Sobes.tech
Junior — Middle

Hogyan végzi az equals metódus két objektum összehasonlítását Java-ban?

sobes.tech MI

Válasz az MI-től

A equals metódus Java-ban két objektum szemantikus egyenlőségét használja összehasonlításra. Alapértelmezés szerint, ha nem írjuk felül, akkor a hivatkozásokat hasonlítja össze (azaz ellenőrzi, hogy ugyanarra az példányra mutatnak-e az objektumok).

Az equals felülírásakor általában az objektumok tartalmát, például a mezők értékeit hasonlítjuk össze.

Egy tipikus equals megvalósítás a következőket tartalmazza:

  • Hivatkozások egyenlőségének ellenőrzése (this == obj)
  • null és osztálykompatibilitás ellenőrzése
  • Az objektumok jelentős mezőinek összehasonlítása

Példa:

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

Fontos továbbá, hogy az equals felülírásakor a hashCode-ot is felül kell írni, hogy megőrizzük a két metódus közötti szerződést.