Junior — Middle
108
¿Cómo comparas dos objetos, teniendo en cuenta su tipo específico, al usar el método equals?
Empresas donde se preguntó
Respuesta de la IA
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, но тогда нужно учитывать возможные проблемы с симметричностью.