@Builder注解不能 build 父类属性
时间: 2024-10-23 22:08:42 浏览: 84
`@Builder`注解是Lombok库提供的一个便利工具,它用于简化POJO(Plain Old Java Object,简单对象)的构建过程。当你在一个类上应用了`@Builder`,Lombok会自动生成一个构造函数和getter/setter,方便通过方法链式调用来创建实例。
然而,`@Builder`默认情况下不会处理父类的属性,因为Lombok认为这些属性通常由父类提供并不需要显式地在子类的构建过程中设置。如果你想要构建父类的属性,有两种常见做法:
1. **继承Builder**:如果你的子类也有对应的Builder,你可以让子类继承父类的Builder,并覆盖那些需要处理的字段。
```java
class ParentClass {
private String parentField;
}
@Builder
class ChildClass extends ParentClass {
// 其他ChildClass的字段...
}
```
2. **手动调用父类Builder**:如果子类Builder不直接继承父类Builder,可以在构造方法中调用父类的Builder来初始化父类属性。
```java
@Builder
class ChildClass {
private String childField;
ChildClass(ParentClass.Builder parentBuilder) {
this.parentField = parentBuilder.build().parentField;
// 其他ChildClass的构建...
}
}
```
请注意,这两种方法都需要你在使用时明确地管理父类属性的构建。
阅读全文