【发布时间】:2019-06-25 19:46:39
【问题描述】:
请建议在应用继承时如何使用@Wither。
我有一个抽象类Parent 和具体类Child。 Child 应该是不可变的。将@Wither 放在两者上会给我两个错误:
- 构造函数 Child(String) 未定义
- Child 类型必须实现继承的抽象方法 Parent.withA(String)
@Value
@Wither
@NonFinal
@SuperBuilder
abstract class Parent {
String a;
}
@Value
@Wither
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
class Child extends Parent {
String b;
}
我很乐意删除 @Wither 并使用构建器方法,但我正在重构一个公共库(尝试优化模型类)并且我不希望我的客户端出现编译错误。
我还发现了解释第二个错误的这个问题。但是意图的逻辑不清楚https://github.com/rzwitserloot/lombok/issues/945
【问题讨论】: