Опущення одного сетера / геттера в Ломбок


232

Я хочу використовувати клас даних у Ломбоку. Оскільки в ньому близько десятка полів, я зазначив це за допомогою @Data, щоб генерувати всі сетери та геттери. Однак є одне спеціальне поле, для якого я не хочу, щоб приладдя було впроваджене.

Як Ломбок опускає це поле?

Відповіді:


415

Ви можете передати рівень доступу до приміток @Getterта @Setterприміток. Це корисно, щоб геттери або сетери були захищеними або приватними. Він також може бути використаний для зміни за замовчуванням.

З @Data, у вас за замовчуванням у вас доступ громадського доступу. Тепер ви можете використовувати спеціальний рівень доступу, NONEщоб повністю пропустити доступ , наприклад:

@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
private int mySecret;

1
Ідеально. Якщо приватне поле є POJO, а також його зазначається @Delegate (), воно може використовуватися для вилучення набору властивостей в окремий клас багаторазового використання. Це може бути корисно, якщо один і той же набір властивостей застосовується до декількох класів (тип змішання для додавання властивостей). Наприклад, міксин, що представляє набір атрибутів, які можуть застосовуватися для моделювання різних елементів XML.
xorcus

Чи є у вас подібні речі, як пропустити одне поле в будівельнику?
zt1983811

1
Ви маєте на увазі, що атрибут не повинен відображатися у будівельнику? Ні, прямо для цього немає нічого. Пам'ятайте, що це @Builderможе бути поставлено як для функцій, так і для конструкторів, а також класів, і пропонуйте лише встановлення тих атрибутів, які з'являються у підписі цієї функції.
Майкл Піефель

Він не реалізовує жодного сеттера та геттера для цієї властивості, де @Data за замовчуванням включає сеттер і getters. які були б виключені згадуванням AccessLevel.NONE.
Рам

41

Відповідно до опису @Data, ви можете використовувати:

Усі створені геттери та сетери будуть публічними. Щоб замінити рівень доступу, коментуйте поле чи клас явною анотацією @Setter та / або @Getter. Ви також можете використовувати цю примітку (комбінуючи її з AccessLevel.NONE), щоб придушити генерування геттера та / або сеттера взагалі.


-3

Якщо ви встановили сетер і геттер як приватні, вони з'являться в чеках PMD.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.