Sobes.tech
Junior — Middle
103

Cum compari două obiecte, luând în considerare tipul lor specific, atunci când folosești metoda equals?

Companiile au fost întrebate
AstonAston

Răspuns de la AI

sobes.tech AI

При реализации метода equals в Java важно:

  1. Проверить, что объект, с которым сравнивают, не null.
  2. Проверить, что объекты одного типа (обычно с помощью instanceof или сравнения классов).
  3. Сравнить значимые поля объектов на равенство.

Пример реализации метода equals с учетом типа:

@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(this.field1, other.field1) && this.field2 == other.field2;
}

Здесь getClass() гарантирует, что сравниваются объекты именно одного класса, а не подклассов. Если нужна более гибкая проверка, можно использовать instanceof, но тогда нужно учитывать возможные проблемы с симметричностью.