我有两门课:1]基本客户. java
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Builder(builderMethodName="BaseBuilder")
public class BaseCusmtomer {
private String cutomerId;
private String age;
@Default
private Boolean isActive= true;
@Default
private String type = "XYZ";
}
2] Customer.java
@Builder
public class Customer extends BaseCustomer{
private Customer(String cutomerId, String age, Boolean isActive, String type){
super(customerId,age,isActive,type);
}
}
3]测试对象
Customer.builder().cutomerId("1").age("23").build();
但是当使用客户生成器创建对象时,它总是取isActive的值,类型为null,它应该从超类中取默认值。有办法做到这一点吗?
尝试使用默认父类值调用子生成器,但获得空值而非默认值。
注意:不能使用Superbuilder,因为它是实验功能。
1条答案
按热度按时间tyu7yeag1#
只需将
@Builder
从Customer
类中删除,并在BaseCustomer
上使用@Builder
即可:注意:您不需要在
Customer
类上创建构造函数。