我正在寫一個通用類:通用通配符在Java中
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);
上的錯誤進行編譯。因爲我用List<? extends Node<T>>
作爲返回類型聲明瞭getChildren(),而'this'是Node<T>
。
有沒有辦法解決這個問題?
http://stackoverflow.com/questions/1292109/generics-get-andput-rule –