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.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage