我遇到了Java抽象類和泛型函數的問題。該實現是Dijkstra算法圖中的一個節點類。Java抽象類通用方法參數
public abstract class Node {
float distance;
Node parent;
public void relax(Node parent, Edge edge, PriorityQueue<? extends Node> priorityQueue) {
if (this.distance > parent.distance + edge.weight){
this.distance = parent.distance + edge.weight;
this.parent = parent;
priorityQueue.remove(this);
priorityQueue.add(this);
}
}
}
的問題是線:
priorityQueue.add(本);
由於此引用Node類(這是抽象的),它可以不被添加到優先級隊列和實際上應該類型?(節點的子類)在中表示?擴展節點。我如何引用這個子類的類型?
在此先感謝。
相關:http://stackoverflow.com/questions/34513926/is-extends-exclusivity-of-method-parameters – VGR