Sobes.tech
Junior — Middle

Zašto je važno redefinisati metodu equals() u svojoj klasi?

sobes.tech АИ

Одговор од АИ

Prepisivanje metode equals() je važno za ispravno poređenje objekata po sadržaju, a ne po referenci. Po default-u u Javi, metoda equals() poredi reference (tj. proverava da li promenljive ukazuju na isti objekat).

Ako želite da smatrate dva objekta jednakim kada se poklapaju određena polja (npr. identifikator, ime itd.), morate prepisati equals().

Primer:

@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 prepisivanja equals(), kolekcije poput HashSet ili metode pretraživanja mogu raditi netačno.