Wie erstelle ich ein Objekt, wenn wir eine Vererbungsbeziehung mit dem Lombok Builder haben?

8

In meinem Projekt verwende ich Lombok, um das Schreiben von Gettern und Setter für eine Klasse zu vermeiden. Außerdem verwende ich lombok.Builder, um ein Objekt zu erstellen, anstatt neues Obeject () zu schreiben und dann alle Werte zu setzen.

Aber wenn wir eine Vererbungsbeziehung haben und wenn wir ein untergeordnetes Objekt mit dem Lombok Builder erstellen wollen, erhalte ich kein Elternfeld.

Zum Beispiel:

%Vor%

Und Child-Klasse wäre etwa so:

%Vor%

In meiner Testklasse, wo ich ein untergeordnetes Objekt erstellen muss

%Vor%

Bitte lassen Sie mich wissen, gibt es eine Möglichkeit, dieses Szenario in Lombok zu behandeln.

    
Rakesh 07.10.2015, 10:12
quelle

1 Antwort

11

@Builder hat keine Möglichkeit festzustellen, welche Felder von Parent angezeigt werden sollen.

Wenn @Builder in einer Klasse platziert wird, werden nur die für diese Klasse explizit deklarierten Felder zu *Builder hinzugefügt.

Wenn @Builder auf einer statischen Methode oder einem Konstruktor platziert wird, wird das resultierende *Builder eine Methode für jedes Argument haben.

Auch wenn Sie @Builder verwenden, ist es dann sicher anzunehmen, dass mindestens Child unveränderlich sein soll?

Ich gebe zwei Beispiele, eines davon ist Parent änderbar und Child ist unveränderlich und eins, wo sowohl Parent als auch Child unveränderlich sind.

Unveränderliches Elternteil und Kind

%Vor%

Veränderbares Elternteil, Unveränderliches Kind:

%Vor%     
Jeff 06.11.2015, 16:36
quelle

Tags und Links