Junior — Middle
Ako porovnáva metóda equals dva objekty v Jave?
sobes.tech AI
Odpoveď od AI
Metóda equals v Jave sa používa na porovnanie dvoch objektov z hľadiska ich zmysluplnej rovnosti. Predvolene, ak nie je prepísaná, porovnáva referencie (t.j. kontroluje, či objekty ukazujú na rovnaký exemplár).
Pri prepise equals zvyčajne porovnávame obsah objektov, napríklad hodnoty polí.
Typická implementácia equals zahŕňa:
- Kontrolu rovnosti odkazov (
this == obj) - Kontrolu na
nulla kompatibilitu tried - Porovnanie významných polí objektov
Príklad:
@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;
}
Je tiež dôležité prepísať hashCode, keď prepíšete equals, aby ste zachovali kontrakt medzi týmito metódami.