java Lombok下解决@Builder继承解决方法(@SuperBuilder)
由于Lombok @Builder不适用于继承用例:
class Foo{ protected int xyz1; ..... protected String xyz7; } class Bar extends Foo{ }
对于给定的用例,Lombok将无法生成方法来设置Foo类中定义的参数值。
解决方法是:
- 手动创建Bar的构造函数。
- 在该构造函数上放置一个Builder注释。
Lombok引入了实验性功能,其版??本为:1.18.2,用于解决Builder注释所面临的继承问题,并且可以使用@SuperBuilder注释解决如下。
@SuperBuilder public class ParentClass { private final String a; private final String b; } @SuperBuilder public class ChildClass extends ParentClass{ private final String c; }
现在,可以使用如下所示的Builder类(使用@Builder注解是不可能的)
ChildClass.builder().a("testA").b("testB").c("testC").build();