Sobes.tech
Junior — Middle

Jak metoda equals porównuje dwa obiekty w Java?

sobes.tech AI

Odpowiedź od AI

Metoda equals w Javie służy do porównywania dwóch obiektów pod kątem ich semantycznej równości. Domyślnie, jeśli nie jest nadpisana, porównuje odwołania (czyli sprawdza, czy obiekty wskazują na ten sam egzemplarz).

Przy nadpisywaniu equals zazwyczaj porównuje się zawartość obiektów, na przykład wartości pól.

Typowa implementacja equals obejmuje:

  • Sprawdzenie równości odwołań (this == obj)
  • Sprawdzenie na null i zgodność klas
  • Porównanie istotnych pól obiektów

Przykład:

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

Ważne jest również nadpisanie hashCode przy nadpisywaniu equals, aby zachować kontrakt między tymi metodami.