Wie Code nach dem Konstruktor in einem Lombok-Builder ausgeführt wird
Ich habe eine Klasse, die ich Lombok.Builder verwenden möchte, und ich muss einige Parameter vorverarbeiten. Etwas wie das
@Builder
public class Foo {
public String val1;
public int val2;
public List<String> listValues;
public void init(){
// do some checks with the values.
}
}
normalerweise würde ich nur @ anrufinit()
auf einem NoArg-Konstruktor, aber mit dem generierten Builder kann ich das nicht. Gibt es einen Weg für diesesinit
wird vom generierten Builder aufgerufen? Zum Beispielbuild()
würde einen Code erzeugen wie:
public Foo build() {
Foo foo = Foo(params....)
foo.init();
return foo;
}
Mir ist bewusst, dass ich das @ manuell codieren kanall args
Konstruktor, der vom Builder aufgerufen wird und ich kann @ aufrufinit
dort drinnen.
Aber das ist eine suboptimale Lösung, da in meiner Klasse wahrscheinlich von Zeit zu Zeit neue Felder hinzugefügt werden, was bedeuten würde, dass auch der Konstruktor geändert wird.