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.