在Lombock下,使用@builder无法继承父类的解决办法
在Lombock1.18.4以后增加了@SuperBuilder注解来解决,但是可能是功能不完整,暂时还是无法解决继承问题
于是按照网上其他达人的方案,自主实现@builder,虽然有点啰嗦,单好歹能用,期待@SuperBuilder后续能彻底解决问题,先将实现方式记录如下
/**
* 关键:父类里面用@AllArgsConstructor 标识一个全参构造函数
**/
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class ParentBase implements Serializable {
protected String name;
}
@Getter
@Setter
@NoArgsConstructor
public class ChildClass extends ParentBase implements Serializable {
private Integer age;
/**
* 子类里面需要自己写一个Builder的构造器,来重写父类参数
**/
@Builder(toBuilder = true)
public ChildClass(String name,Integerage){
super(name);
this.age= age;
}
}
// 使用的时候就可以正常使用了:
ChildClass child = ChildClass.builder().name("张三").age(16).build();
基于以上两步,可以在@SuperBuilder完善之前暂时使用