Встречается на собеседованиях • сегодня
Как реализуешь сравнение объектов через equals с учетом их типа
Для корректного сравнения объектов через equals() необходимо:
- Проверить ссылки на равенство (
this == obj) - Проверить тип объекта через
instanceofилиgetClass() - Привести тип и сравнить значимые поля
Пример с instanceof (подходит для наследования):
java
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof MyClass)) return false;
MyClass other = (MyClass) obj;
return field1.equals(other.field1)
&& field2 == other.field2;
}Пример с getClass() (строгая проверка типа):
java
@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;
}Всегда переопределяйте hashCode(), если переопределяете equals(). Для сравнения полей используйте Objects.equals() для null-безопасности.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы