Одним из популярных инструментов для сокращения кода в 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.
Добавить комментарий