Встречается на собеседованиях • сегодня

Что такое симметричность

Симметричность в Java означает, что если объект a равен b, то b должен быть равен a. Это одно из основных требований для корректной реализации метода equals().

Пример нарушения симметричности:

java
class A {
    @Override
    public boolean equals(Object o) {
        if (o instanceof String) { // опасно!
            return this.toString().equals(o);
        }
        return false;
    }
}

Если a.equals(b) возвращает true, то b.equals(a) может вернуть false, если b — строка.

Правильная реализация:

java
@Override
public boolean equals(Object o) {
    if (o == null || o.getClass() != this.getClass()) {
        return false;
    }
    A other = (A) o;
    // сравнение полей
}

Симметричность гарантирует согласованность логики сравнения объектов.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы