【问题标题】:lombok @Value @NonFinal inheritancelombok @Value @NonFinal 继承
【发布时间】:2018-10-02 04:37:38
【问题描述】:

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

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

有什么方法可以实现吗?它似乎因没有意义的错误而中断,因为父类具有注释给出的此类构造函数。我用不同文件中的类尝试了这个,行为相同。

例子:

public class TestLombok {

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

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

}

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

【问题讨论】:

    标签: java lombok


    【解决方案1】:

    很遗憾,这是不可能的。

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

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

    【讨论】:

    • 谢谢罗尔!你能告诉我是否有计划通过额外的注释来支持这一点,还是我应该接受额外的样板文件?
    • 我最终放弃了类继承,转而使用接口,以使 Lombok 项目对不可变 DTO 友好,整体上我的情况看起来更清晰。
    猜你喜欢
    • 2020-07-18
    • 2021-06-18
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-27
    • 1970-01-01
    相关资源
    最近更新 更多