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) nullja 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.