Junior — Middle
Miért fontos felülírni az equals() metódust a saját osztályodban?
sobes.tech MI
Válasz az MI-től
Az equals() metódus felülírása fontos a objektumok tartalom szerinti helyes összehasonlításához, nem referencia szerint. Alapértelmezés szerint Java-ban az equals() metódus referencia szerint hasonlít (azaz ellenőrzi, hogy a változók ugyanarra a objektumra mutatnak-e).
Ha két objektumot egyenlőnek akarsz tekinteni, amikor bizonyos mezőik (például azonosító, név stb.) egyeznek, felül kell írni az equals()-t.
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) &&
Objects.equals(field2, other.field2);
}
Az equals() felülírása nélkül az olyan kollekciók, mint a HashSet, vagy keresési módszerek hibásan működhetnek.