Встречается на собеседованиях • сегодня
Что нужно соблюсти при переопределении equals в Lombok
При переопределении equals() с Lombok (@EqualsAndHashCode) важно:
-
Согласованность с hashCode() – если объекты равны по
equals(), их хеш-коды должны совпадать. Lombok автоматически генерирует оба метода. -
Рефлексивность –
x.equals(x)всегдаtrue.
-
Симметричность – если
x.equals(y), то иy.equals(x). -
Транзитивность – если
x.equals(y)иy.equals(z), тоx.equals(z). -
Учет полей – 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
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы