Java Lombok库:继承的生成器注释问题
Java Lombok库:继承的生成器注释问题
@Builder
public class ParentClass {
private final String a;
private final String b;
}
@Builder
public class ChildClass extends ParentClass{
private final String c;
}
创建子类的实例时,父类属性在生成器注释中不可见
以下失败:
ChildClass.builder().a("testA").b("testB").c("testC").build();
然而,以下陈述是正确的:
ChildClass.builder().c("testC").build();
似乎这个问题已经存在很长时间了,不知道最新版本是否有任何修正
# 1 楼答案
问题是,当您使用@Builder注释定义父类时,它会创建父类(字符串)构造函数并删除隐式构造函数。然后甚至不能创建子类
请看以下答案: how to Call super constructor in Lombok
# 2 楼答案
最新的lombok版本1.18.2包括the new experimental ^{} 。它正是为此而添加的:从超类设置字段