Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
16 Май 2023
2 мин
497

Исключение одного Getter/Setter в Lombok

Одним из популярных инструментов для сокращения кода в Java является Lombok. Он позволяет упростить написание классов, автоматически генерируя методы,

Одним из популярных инструментов для сокращения кода в Java является Lombok. Он позволяет упростить написание классов, автоматически генерируя методы, такие как setters и getters, а также конструкторы, методы equals(), hashCode() и toString().

Возьмем в качестве примера класс Person с полями name, age, address. Обычно для каждого из этих полей необходимо ручное создание геттеров и сеттеров. Но с помощью аннотации @Data в Lombok эту задачу можно автоматизировать.

@Data
public class Person {
    private String name;
    private int age;
    private String address;
}

Однако возникает вопрос: что делать, если для какого-то поля не требуются геттеры или сеттеры? Например, для поля age не нужен сеттер, так как возраст человека должен быть установлен только один раз при создании объекта и не может быть изменен.

В Lombok есть решение и для этой задачи. Если необходимо исключить генерацию getter или setter для определенного поля, достаточно использовать аннотацию @Getter(AccessLevel.NONE) или @Setter(AccessLevel.NONE) соответственно.

@Data
public class Person {
    private String name;
    @Setter(AccessLevel.NONE)
    private int age;
    private String address;
}

В этом случае Lombok сгенерирует геттеры и сеттеры для всех полей, кроме age. Таким образом, можно легко управлять тем, для каких полей генерировать методы доступа, сохраняя при этом все преимущества использования Lombok.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий