Включены ли статические переменные в аннотацию lombok AllArgsConstructor? - PullRequest
1 голос
/ 29 сентября 2019

Название в значительной степени подводит итог. Мне интересно, если мне нужно включить статические переменные (что я, вероятно, не) в конструкторе.

Учитывая, что статические переменные являются статическими, я, вероятно, не. Но я не нашел ответов на этот вопрос на stackoverflow.

Ответы [ 2 ]

2 голосов
/ 29 сентября 2019

Статические поля не пропускаются при использовании этих lombok аннотаций

@NoArgsConstructor
@RequiredArgsConstructor
@AllArgsConstructor

Статические поля пропускаются этими аннотациями.

Если выЕсли вы хотите объявить конструктор со статическими полями, то вы можете объявить его явно, но вы можете получить ошибку компилятора, если любой из этих конструкторов имеет одинаковую сигнатуру

В отличие от большинства других аннотаций lombok, существованиеявный конструктор не мешает этим аннотациям генерировать свой собственный конструктор. Это означает, что вы можете написать свой собственный специализированный конструктор и позволить lombok также генерировать шаблоны. Если возникает конфликт (один из ваших конструкторов заканчивается той же подписью, что и сгенерированная lombok), произойдет ошибка компилятора.

1 голос
/ 29 сентября 2019

Ответ отрицательный, поскольку вы можете проверить это в javadoc:

Конструктор со всеми аргументами требует один аргумент для каждого поля в классе.

или официальная документация: https://projectlombok.org/features/Constructor

RequiredArgsConstructor включает в конструктор все поля final. Тем не менее, переменная static final не может быть инициализирована (так как они могут использоваться даже без экземпляров этого класса)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...