Sobes.tech
Junior — Middle

Kaip metodas equals atlieka dviejų objektų palyginimą Java?

sobes.tech AI

Atsakymas iš AI

Java equals metodas naudojamas lyginti du objektus jų prasmingam lygybei. Pagal numatytuosius nustatymus, jei jis nėra perrašytas, jis lygina nuorodas (t.y., tikrina, ar objektai nurodo tą patį egzempliorių).

Perrašant equals, paprastai lyginamas objektų turinys, pvz., laukų reikšmės.

Tipinė equals įgyvendinimo dalis apima:

  • Nuorodų lygybės patikrinimą (this == obj)
  • null ir klasių suderinamumo patikrinimą
  • Svarbių objektų laukų palyginimą

Pavyzdys:

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

Taip pat svarbu perrašyti hashCode, kai perrašote equals, kad būtų išlaikytas šių metodų kontraktas.