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

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

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

  1. Согласованность с equals(): Если два объекта равны по equals(), их hashCode() должны возвращать одинаковое значение.
  2. Использовать неизменяемые поля: Если объект изменяемый, лучше исключить такие поля из hashCode() (через @EqualsAndHashCode(exclude) или @EqualsAndHashCode.Exclude).
  3. Производительность: Хеш-код должен вычисляться быстро, особенно для часто используемых объектов.

Пример:

java
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
public class User {
    @EqualsAndHashCode.Include
    private final Long id;  // неизменяемый и уникальный
    private String name;    // исключен, так как может меняться
}

Используй onlyExplicitlyIncluded = true, чтобы явно указать, какие поля участвуют в hashCode() и equals().

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

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

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

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