带有Java泛型的生成器模式
我不太明白如何最好地为下面的泛型层次结构实现构建器模式 基类带有Java泛型的生成器模式,java,generics,builder,Java,Generics,Builder,我不太明白如何最好地为下面的泛型层次结构实现构建器模式 基类 @lombok.Data public class Node<T> { private T data; private String source; } @lombok.Data 公共类节点{ 私有T数据; 私有字符串源; } 儿童班 @lombok.Data public class MyNode extends Node<MyNode> { private String fir
@lombok.Data
public class Node<T> {
private T data;
private String source;
}
@lombok.Data
公共类节点{
私有T数据;
私有字符串源;
}
儿童班
@lombok.Data
public class MyNode extends Node<MyNode> {
private String firstDummy;
private String secondDummy;
}
@lombok.Data
公共类MyNode扩展了节点{
私有字符串;
私有字符串;
}
是否要将匿名生成器类应用于父类并在子类中扩展它
已更新
如果我有一个像这样的匿名建设者
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数据;
私有最终字符串源;
公共静态抽象类生成器{
私有字符串源;
带源的公共生成器(字符串源){
this.source=源;
归还这个;
}
公共摘要S build();
}
公共静态生成器(){
返回新生成器(){
@凌驾
公共节点生成(){
返回新节点(本节点);
}
};
}
受保护节点(生成器){
this.source=builder.source;
}
}
然后如何在
节点
类中实现T
的生成器?如果您想练习im实现生成器,那么是的,您可以实现它们。@nixgadget的提示很好
但是如果你只需要一个构建器,添加一个@builder注释,Lombok会帮你完成。可能会给你一些见解。太棒了。谢谢@jrook