如何将 Lombok @SuperBuilder 与自定义构建器和继承层次结构中的多个 类 一起使用?
How to use Lombok @SuperBuilder with customized builder and several classes in hierarchy of heritance?
我有这样的 classes 层次结构:
@Data
@SuperBuilder
public abstract class Parent1 {
Long id;
}
@Data
@SuperBuilder
public abstract class Parent2 extends Parent1 {
String name;
// Customized Lombok's builder
public abstract static class Parent2Builder<C extends Parent2, B extends Parent2Builder<C, B>> {...}
}
@Data
@SuperBuilder
public class Child extends Parent2 {
//some fields and methods
}
当 Parent1 和 Parent2 与 Lombok 的自定义生成器作为一个 class(具有 2 个字段的父级)时,一切正常。但是我不得不将一个 class 分成两个不同的部分,并且在编译时遇到了下一个错误:
Parent2.java:错误:方法没有覆盖或实现来自超类型 @SuperBuilder 的方法
我不知道我没有实现哪个方法。
P.S。我在另一个包中也有相同的 classes 层次结构(但没有自定义构建器),并且根本没有错误。
现在,Parent2.Parent2Builder
不再是 extends Parent1.Parent1Builder
。如果我们改变
public abstract static class Parent2Builder
<C extends Parent2, B extends Parent2Builder<C, B>> {
...
}
到
public abstract static class Parent2Builder
<C extends Parent2, B extends Parent2Builder<C, B>>
extends Parent1.Parent1Builder<C, B> {
...
}
它按预期工作。
我有这样的 classes 层次结构:
@Data
@SuperBuilder
public abstract class Parent1 {
Long id;
}
@Data
@SuperBuilder
public abstract class Parent2 extends Parent1 {
String name;
// Customized Lombok's builder
public abstract static class Parent2Builder<C extends Parent2, B extends Parent2Builder<C, B>> {...}
}
@Data
@SuperBuilder
public class Child extends Parent2 {
//some fields and methods
}
当 Parent1 和 Parent2 与 Lombok 的自定义生成器作为一个 class(具有 2 个字段的父级)时,一切正常。但是我不得不将一个 class 分成两个不同的部分,并且在编译时遇到了下一个错误: Parent2.java:错误:方法没有覆盖或实现来自超类型 @SuperBuilder 的方法
我不知道我没有实现哪个方法。
P.S。我在另一个包中也有相同的 classes 层次结构(但没有自定义构建器),并且根本没有错误。
现在,Parent2.Parent2Builder
不再是 extends Parent1.Parent1Builder
。如果我们改变
public abstract static class Parent2Builder
<C extends Parent2, B extends Parent2Builder<C, B>> {
...
}
到
public abstract static class Parent2Builder
<C extends Parent2, B extends Parent2Builder<C, B>>
extends Parent1.Parent1Builder<C, B> {
...
}
它按预期工作。