我不太了解如何最好地实现以下泛型层次结构的构建器模式。
基类,
@lombok.Data
public class Node<T> {
private T data;
private String source;
}
子类,
@lombok.Data
public class MyNode extends Node<MyNode> {
private String firstDummy;
private String secondDummy;
}
反正有将匿名生成器类应用于父类并将其扩展到子类中吗?
更新
如果我有像父母这样的匿名建造者,
public class Node<T> {
private T data;
private final String source;
public static abstract class Builder<S extends Node> {
private String source;
public Builder<S> withSource(String source) {
this.source = source;
return this;
}
public abstract S build();
}
public static Builder<?> builder() {
return new Builder<Node>() {
@Override
public Node build() {
return new Node(this);
}
};
}
protected Node(Builder<?> builder) {
this.source = builder.source;
}
}
然后如何在T
类中为Node
实现构建器?
[如果您想练习即时实现构建器,那么可以,您可以实现它们。 @nixgadget的提示很好。