如何在 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 中是否有注释来做到这一点?

原文由 Sandeep Nagaraj 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 545
1 个回答

这在龙目岛是不可能的。虽然这将是一个非常好的功能,但它需要解决才能找到超类的构造函数。超类只有在 Lombok 被调用时才知道名字。使用导入语句和类路径来查找实际的类并不简单。在编译期间,您不能只使用反射来获取构造函数列表。

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

披露:我是 Lombok 开发人员。

原文由 Roel Spilker 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题