我正在写一个通用类:
public class Node<T> {
private Node<T> parent = null;
private List<? extends Node<T>> children = null;
public Node<T> getParent() {
return parent;
}
public void setParent(Node<T> parent) {
if(this.parent != null){
// Remove current parent's children references
this.parent.getChildren().remove(this);
}
// Add references
this.parent = parent;
parent.getChildren().add(this);
}
public List<? extends Node<T>> getChildren() {
return children;
}
}
我想要一些其他类来子类这个节点。此代码无法编译,出现在线错误parent.getChildren().add(this);
。因为我将 getChildren() 声明List<? extends Node<T>>
为返回类型,而 'this' 是 type Node<T>
。
有没有办法解决这个问题?