有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java Lombok库:继承的生成器注释问题

Java Lombok库:继承的生成器注释问题

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

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

创建子类的实例时,父类属性在生成器注释中不可见

以下失败:

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

然而,以下陈述是正确的:

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

似乎这个问题已经存在很长时间了,不知道最新版本是否有任何修正


共 (2) 个答案

  1. # 1 楼答案

    问题是,当您使用@Builder注释定义父类时,它会创建父类(字符串)构造函数并删除隐式构造函数。然后甚至不能创建子类

    请看以下答案: how to Call super constructor in Lombok

  2. # 2 楼答案

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