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

Исключение одного 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.

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