Встречается на собеседованиях • сегодня
В чем разница между @Value и @Data в Lombok
@Value и Data – аннотации Lombok для сокращения кода, но с разной семантикой:
@Value
Создает immutable-класс (все поля final). Генерирует:
- Геттеры (но не сеттеры)
equals(),hashCode(),toString()- Конструктор для всех полей
Пример:
java
@Value
public class Point {
int x;
int y;
}
// Point immutable = new Point(1, 2);@Data
Для mutable-классов. Генерирует:
- Геттеры и сеттеры
equals(),hashCode(),toString()- Конструктор для всех
final-полей (если нет других конструкторов)
Пример:
java
@Data
public class Person {
private String name;
private int age;
}
// Person p = new Person(); p.setName("Alice");Ключевые отличия:
@Value– для неизменяемых объектов,@Data– для изменяемых@Valueделает все поляfinalпо умолчанию@Dataгенерирует сеттеры,@Value– нет

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