Аннотация @Data
Аннотация @Data
сочетает в себе следующие аннотации: @ToString
, @EqualsAndHashCode
, @Getter
/ @Setter
и @RequiredArgsConstructor
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
public class Item {
private Integer id;
private String name;
private Double price;
}
Item milk = new Item();
// Сеттеры
milk.setId(1);
milk.setName("Молоко");
milk.setPrice(99.90);
System.out.println(milk);
// => Item(id=1, name=Молоко, price=99.9)
Item bread = new Item();
bread.setId(1);
bread.setName("Хлеб");
bread.setPrice(69.90);
// Метод equals()
System.out.println(milk.equals(bread)); // => false
Аннотация @Builder
Аннотация позволяет создавать инстансы класса в стиле "текучего интерфейса". Добавим эту аннотацию:
import lombok.Builder;
@Builder
public class Item {
private Integer id;
private String name;
private Double price;
}
Создадим класс:
Item item = Item.builder()
.id(1)
.name("Котлета")
.price(100.0)
.build();
System.out.println(item);
// => Item(id=1, name=Котлета, price=100.0)
Аннотация @NonNull
import lombok.Builder;
import lombok.NonNull;
@Builder
public class Item {
@NonNull
private Integer id;
private String name;
private Double price;
}
Item item = Item.builder()
.price(10.0)
.name("Йогурт")
.build();
System.out.println(item);
// java.lang.NullPointerException: id is marked non-null but is null
Дополнительные материалы
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.