lombok @Value @NonFinal 继承

Jua*_*uan 9 java lombok

我试图在不创建任何构造函数的情况下链接几个 @Value @NonFinal 类。

期望 lombok 选择生成一个构造函数,该构造函数使用所有匹配的参数调用 super。

有没有办法实现这一目标?它似乎打破了一个没有意义的错误,因为父类具有注释给出的这样的构造函数。我用不同文件中的类尝试了这个,同样的行为。

例子:

public class TestLombok {

@Value
@NonFinal
class A {
    @NonNull Integer a;
}

@Value
@NonFinal
class B extends A {
    String b;
}

}
Run Code Online (Sandbox Code Playgroud)

错误:(12, 5) java: 类 TestLombok.A 中的构造函数 A 不能应用于给定类型;要求:java.lang.Integer 发现:没有参数原因:实际和形式参数列表的长度不同

Roe*_*ker 9

不幸的是,这是不可能的。

找出父类具有哪些字段或方法需要解析。当 lombok 需要生成方法时,解析是不可能的,因为它会改变可用字段和方法的结果。

披露:我是龙目岛的开发人员。

  • 我最终放弃了类继承,转而使用接口,以使 Lombok 项目对不可变 DTO 友好,总体而言,在我的情况下,事情看起来更干净。 (3认同)