Solución:
Aquí solo tenemos que llamar al super del constructor.
@Data
public class B extends A {
Integer b1;
@Builder
public B(Integer b1, Integer a1) {
super(a1);
this.b1 = b1;
}
public static class BBuilder extends ABuilder{
BBuilder() {
super();
}
}
}
Si está utilizando Lombok 1.18.4 junto con IntelliJ, el siguiente código funcionará para usted:
@Data
@Builder
class A {
Integer a1;
}
@Data
class B extends A {
Integer b1;
@Builder (builderMethodName = "BBuilder")
public B(Integer b1, Integer a1) {
super(a1);
this.b1 = b1;
}
}
public class Main {
public static void main(String[] args){
System.out.println(B.BBuilder().a1(1).b1(1).build());
}
}
Una nota al margen, la anotación @SuperBuilder no funcionó en IntelliJ al momento de escribir esta respuesta. Si tiene varios niveles de herencia, evite Lombok o hará que sus modelos de Java se vuelvan desordenados.
Lombok ha introducido funciones experimentales con la versión: 1.18.2 para problemas de herencia que se enfrentan con la anotación Builder, y se pueden resolver con la anotación @SuperBuilder.
Utilice la versión de lombok: 1.18.2, anotaciones de @SuperBuilder en la clase para niños / padres
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)