Lombok Builder игнорирует пользовательский сеттер

Итак, у меня есть класс с аннотацией @Builder и настраиваемым сеттером, который должен делать больше, чем установка this.authorities

@Setter(AccessLevel.NONE)
private Collection<Authority> authorities;

public void setAuthorities(Collection<Authority> authorities...

но этот установщик игнорируется при использовании построителя классов.

Еще одна странность для меня заключается в том, что у билдера все еще есть метод authorities, даже если я удаляю свой сеттер. Это ошибка или я что-то не так делаю здесь?


person freakman    schedule 09.07.2015    source источник
comment
Кажется, вы думаете, что @Builder превращает класс в строитель. Это не так, он генерирует другой. Обычно исходный класс не должен иметь сеттеров, поскольку он неизменяем (вот почему вам нужен билдер).   -  person maaartinus    schedule 09.07.2015


Ответы (1)


@Builder генерирует свой собственный класс classNameBuilder с методами и полями. Вот почему он не использует ваш сеттер из аннотации @Setter. Эти обе аннотации не зависят друг от друга, поэтому после того, как вы удалили сеттер, построитель все еще работает.

См. документ Lombok https://projectlombok.org/features/Builder.html.

Не могли бы вы поделиться своим кодом, чтобы было легче понять, чего вы хотите достичь?

person Pawel    schedule 09.07.2015