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

Что нужно соблюсти при переопределении equals в Lombok

При переопределении equals() с Lombok (@EqualsAndHashCode) важно:

  1. Согласованность с hashCode() – если объекты равны по equals(), их хеш-коды должны совпадать. Lombok автоматически генерирует оба метода.

  2. Рефлексивностьx.equals(x) всегда true.

  1. Симметричность – если x.equals(y), то и y.equals(x).

  2. Транзитивность – если x.equals(y) и y.equals(z), то x.equals(z).

  3. Учет полей – Lombok включает все нестатические поля по умолчанию. Можно исключить поля через @EqualsAndHashCode.Exclude или указать только нужные через @EqualsAndHashCode(onlyExplicitlyIncluded = true) + @EqualsAndHashCode.Include.

Пример:

java
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
public class User {
    @EqualsAndHashCode.Include
    private Long id;
    private String name; // не участвует в equals/hashCode
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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