У меня есть класс, который я хочу использовать Lombok.Builder, и мне нужна предварительная обработка некоторых параметров. Что-то вроде этого:
@Builder
public class Foo {
public String val1;
public int val2;
public List<String> listValues;
public void init(){
// do some checks with the values.
}
}
обычно я просто вызываю init()
в конструкторе NoArg, но с созданным построителем я не могу этого сделать. Есть ли способ вызвать это init
сгенерированным построителем? Например, build()
сгенерирует такой код:
public Foo build() {
Foo foo = Foo(params....)
foo.init();
return foo;
}
Я знаю, что могу вручную закодировать конструктор all args
, который будет вызывать через него Builder, и я могу вызвать init
внутри него.
Но это неоптимальное решение, поскольку в мой класс, вероятно, время от времени будут добавляться новые поля, что также будет означать изменение конструктора.