Sobes.tech
Junior — Middle

Kuidas meetod equals teostab kahe objekti võrdlemise Java-s?

sobes.tech AI

Vastus AI-lt

Java-s equals meetodit kasutatakse kahe objekti sisulise võrdluse tegemiseks. Vaikimisi, kui seda ei ole üle kirjutatud, võrdleb see viiteid (st kontrollib, kas objektid viitavad samale eksemplarile).

equals-i üle kirjutades võrreldakse tavaliselt objektide sisu, näiteks väljade väärtusi.

Tüüpiline equals-i implementatsioon hõlmab:

  • Viidete võrdluse kontroll (this == obj)
  • null ja klasside sobivuse kontroll
  • Oluliste objektiväljade võrdlus

Näide:

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

Samuti on oluline üle kirjutada hashCode, kui equals on üle kirjutatud, et säilitada nende meetodite vahel kehtiv leping.