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
Răspuns de la AI
sobes.tech AI
При реализации метода equals в Java важно:
- Проверить, что объект, с которым сравнивают, не
null. - Проверить, что объекты одного типа (обычно с помощью
instanceofили сравнения классов). - Сравнить значимые поля объектов на равенство.
Пример реализации метода 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, но тогда нужно учитывать возможные проблемы с симметричностью.