我遇到了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