java - 如何在 Lombok 中调用 super 构造函数

标签 java lombok

我有课

@Value
@NonFinal
public class A {
    int x;
    int y;
}

我还有另一个B类

@Value
public class B extends A {
    int z;
}

lombok 抛出错误,说它找不到 A() 构造函数,显式调用它我想要 lombok 做的是给类 b 提供注释,以便它生成以下代码:

public class B extends A {
    int z;
    public B( int x, int y, int z) {
        super( x , y );
        this.z = z;
    }
}

我们有注释可以在 Lombok 中执行此操作吗?

最佳答案

这在 Lombok 是不可能的。虽然这将是一个非常好的功能,但它需要解析才能找到父类(super class)的构造函数。父类(super class)只有在调用 Lombok 时才能知道其名称。使用 import 语句和类路径来查找实际的类并不简单。并且在编译期间,您不能仅使用反射来获取构造函数列表。

这并非完全不可能,但在 val@ExtensionMethod 中使用解析的结果告诉我们,这很困难且容易出错。

披露:我是一名 Lombok 开发人员。

关于java - 如何在 Lombok 中调用 super 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56752721/

相关文章:

java - 如何启用@Required?

java - 验证时,我需要 "exception"中的元素名称

java - 如何在 lombok 中使用单一属性添加

java - Lombok 删除 IntelliJ 上的红色下划线

java - Lombok 构建器检查非空且不为空

java - 如何使用 equals hashcode 和 toString 与两个有循环的对象进行 Lombok 操作?

java - 将 InitBinder 与命令对象一起使用

java - 如何创建多个线程池,即多个执行器,每个执行器都有一个线程

java - 静态工厂方法优点

intellij-idea - 如何在 IntelliJ 中刷新 Lombok 注释处理?