Java Lombok 库:继承的构建器注释问题

Java Lombok library : builder annotation issues with Inheritance

Java Lombok 库:构建器注释与继承有关

    @Builder
    public class ParentClass {
        private final String a;
        private final String b;
    }

    @Builder
    public class ChildClass extends ParentClass{
        private final String c;
    }

创建子 class 实例时,父 class 属性在 Builder 注释中不可见。

以下失败:

     ChildClass.builder().a("testA").b("testB").c("testC").build();

但是,下面的说法是正确的:

     ChildClass.builder().c("testC").build();

这个issue好像很久了,不知道最新版本有没有修复。

问题是,当您使用@Builder 注释定义 ParentClass 时,它会创建 ParentClass(String) 构造函数并删除隐式构造函数。那么Childclass连创建都无法创建

请看下面的回答: how to Call super constructor in Lombok

最新的 lombok 版本 1.18.2 包括 the new experimental @SuperBuilder。它正是为此添加的:从超类设置字段。