Sobes.tech
Junior — Middle

Kaip įgyvendini objektų lygumo palyginimą naudojant metodą equals?

sobes.tech AI

Atsakymas iš AI

Norint teisingai palyginti objektus Java naudojant equals metodą, šį metodą reikia perrašyti savo klasėje, atsižvelgiant į visus svarbius laukus, kurie nustato objektų lygybę. Bendros rekomendacijos:

  • Patikrinkite, ar objektas nėra null.
  • Patikrinkite, ar objektai yra tos pačios klasės.
  • Palyginkite visus laukus, kurie veikia lygybę.

Pavyzdys Person klasės įgyvendinimui:

@Override
public boolean equals(Object obj) {
    if (this == obj) return true; // nuorodų lygybės patikrinimas
    if (obj == null || getClass() != obj.getClass()) return false; // null ir klasės patikrinimas
    Person other = (Person) obj;
    return Objects.equals(name, other.name) && age == other.age;
}

Taip pat rekomenduojama perrašyti hashCode metodą, kai perrašote equals, kad kolekcijose veiktų teisingai.