Геттеры и сеттеры в Lombok

accessor-methodsМоя самая любимая функциональность проекта — генерация геттеров и сеттеров. Наконец-то разработчики избавляются от тяжёлого наследия и сбрасывают с себя цепи.

Генерируют геттеры и сеттеры аннотации @Getter и @Setter:

Параметром аннотации можно задать уровень доступа к сгенерированному методу. В примере выше сеттер для переменной cantSet будет недоступен:

Поместив в код проекта файл  lombok.config c опцией  lombok.accessors.chain = true можно автоматически сгенерировать сеттеры, которые возвращают this  вместо void и вызывать их в стиле билдера:

Действие конфигурационного файла распространяется на каталог исходников, в котором он расположен и все его подкаталоги.

Аннотация @NonNull на переменной owner указывает project lombok, что сеттер не должен принимать null значения:

Последний и, на мой взгляд, достаточно сомнительный функционал lombok по генерации геттеров — кэширование значений. Если переменная имеет некоторое значение и это значение дорого вычислять, то lombok может сгенерировать геттер, который закэширует результат вычислений и будет возвращать его из кэша:

Код примера доступен на github.