lombok的注解影响不了父类的属性,只能影响当前类的属性。例子如下:
例子1:子类Test中使用@Setter、@Getter
,并不能给父类的属性id生成Setter、Getter。
public class BaseEntity{
private String id;
}
@Getter
@Setter
public class Test extends BaseEntity{
private String code;
private String name;
}
例子2:子类Test中使用@Builder
,也不能使用Builder模式给父类的id设置值。
public class BaseEntity{
private String id;
}
@Builder
public class Test extends BaseEntity{
private String code;
private String name;
public static void main(String[] args) {
Test.builder().id("123") //错误,没有这个方法
}
}
在子类和父类中都使用@SuperBuilder
,去掉@Builder
,可以实现使用Builder模式给父类的属性设置值。但是这个在lombok版本1.18.8是实验性质的功能,没有经过官方测试。文档:https://projectlombok.org/features/experimental/all 不知道未来的版本会不会加到稳定版。