Sobes.tech
Junior — Middle

Jak metoda equals provádí porovnání dvou objektů v Javě?

sobes.tech AI

Odpověď od AI

Metoda equals v jazyce Java se používá k porovnání dvou objektů z hlediska jejich smysluplné rovnosti. Ve výchozím nastavení, pokud není přepsána, porovnává odkazy (tj. kontroluje, zda objekty odkazují na stejný exemplář).

Při přepsání equals obvykle porovnáváme obsah objektů, například hodnoty jejich polí.

Typická implementace equals zahrnuje:

  • Kontrolu rovnosti odkazů (this == obj)
  • Kontrolu na null a kompatibilitu tříd
  • Porovnání významných polí objektů

Pří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 také důležité přepsat hashCode, když přepisujete equals, aby byl zachován kontrakt mezi těmito metodami.