如何使用Lombok创建调用父类AllArgsConstructor的子类构造方法?
解决方案
要让Lombok自动生成子类Child的全参构造方法(包含父类的name和子类的age,并正确调用父类构造),最简洁的方式是使用**@SuperBuilder**注解,它专门用于处理继承关系下的构造方法与构建器生成。
步骤1:给父类添加@SuperBuilder
父类需要配合@SuperBuilder注解,让Lombok能识别继承关系中的字段:
@Data @AllArgsConstructor @SuperBuilder public class Parent { private String name; }
步骤2:给子类添加@SuperBuilder
子类同样添加@SuperBuilder,Lombok会自动生成包含父类字段和子类字段的全参构造方法,等价于你手动编写的代码:
@Data @SuperBuilder public class Child extends Parent { private int age; }
生成的等价构造方法
Lombok会自动生成如下构造方法:
public Child(String name, int age) { super(name); this.age = age; }
补充说明
@SuperBuilder是Lombok的稳定特性(原实验性特性现已成熟),除了生成构造方法,还会提供链式构建器API,方便对象创建。- 若你仅需要构造方法而不需要构建器,也可以使用
@SuperBuilder(toBuilder = false)来关闭构建器生成。
内容的提问来源于stack exchange,提问作者Xi Minghui
相关产品推荐
相关产品推荐

