Back to questions
Junior — Middle
68
Можешь объяснить основные правила переопределения метода equals в Java?
Companies where asked
Dogma
Answer from AI
sobes.tech AI
Основные правила переопределения метода equals в Java:
- Рефлексивность: объект должен быть равен самому себе (x.equals(x) == true).
- Симметричность: если x.equals(y) == true, то y.equals(x) тоже должно быть true.
- Транзитивность: если x.equals(y) == true и y.equals(z) == true, то x.equals(z) == true.
- Согласованность: многократные вызовы equals с одними и теми же объектами должны возвращать одинаковый результат.
- Сравнение с null: x.equals(null) должно возвращать false.
При переопределении equals обычно также переопределяют hashCode, чтобы объекты, равные по equals, имели одинаковый hashCode.
Пример:
@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;
}