当前位置: 首页 > 知识库问答 >
问题:

lombok@Value@NonFinal继承

易阳朔
2023-03-14

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

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

有没有办法做到这一点?它似乎出现了一个毫无意义的错误,因为父类有注释给出的构造函数。我用不同文件中的类尝试了这个方法,同样的行为。

例子:

public class TestLombok {

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

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

}

错误:(12,5)java:TestLombok类中的构造函数A。A不能应用于给定的类型;必修课:java。找到整型:无参数原因:实际参数列表和形式参数列表长度不同

共有1个答案

岳嘉悦
2023-03-14

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

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

披露:我是一名龙目山开发人员。

 类似资料:
  • 错误是... 关于继承和@EqualSandHashCode以及Lombok有没有我正在滥用的最佳实践?或者有什么办法?

  • 我在我的多模块maven项目中面临Lombok的问题。我有两个类: 还有一个父maven项目,其中定义了lombok依赖项。还有一个子maven项目,其中我将父项目定义为maven父项目。 当我在 类中使用生成的实例时,会发生编译错误: 我可以通过两种方式解决问题: < li >我自己手工创建了一个名为“log”的私有字段。 < li >我在子maven项目中定义了Lombok依赖项。 为什么这样

  • 请建议应用继承时如何使用。 我有一个抽象类和具体的。应该是不可变的。将放在两者上会导致两个错误: null 我很乐意删除并使用构建器方法,但我正在重构一个公共库(试图优化模型类),我不希望在我的客户端上出现编译错误。 我还发现了解释第二个错误的这个问题。但其意图的逻辑并不清楚https://github.com/rzwitserloot/lombok/issues/945

  • 但是,这与使用lombok注释非常相同: 除了明显不需要处理lombok依赖项之外,使用记录有什么好处吗?

  • Lombok@builder不适用于继承用例: 手动创建条形图的构造函数。 将生成器批注放在该构造函数上。 有更好的变通办法吗?

  • 在搜索了Lombok特性列表,特别是getter/setter和注释的文档之后,我没有找到任何抑制生成的代码的设置。 这一点很重要,因为我不想泄漏对本身是可变的对象的引用。 Effective Java在“项目39:在需要时制作防御性副本”中引用了这种类型的问题。看来可以通过制作实际的防御性副本来部分解决这个问题,但我希望避免泄漏属性,不管这些属性是可变的。 虽然可以滚动自己的注释,但它省略了,当