[英]Call the Generic parameterized method in java
错误消息的含义是什么,以及如何从另一个类调用通用参数化方法:以下是错误消息:
The method add(int, Integer) in the type BinaryMinHeap<Integer> is not applicable for the arguments (int, Vertex<Integer>)
调用代码段:
for(Vertex<Integer> vertex : graph.getAllVertex()){
minHeap.add(Integer.MAX_VALUE, vertex);
}
被调用的方法是:
public void add(int weight,T key) {
Node node = new Node();
node.weight = weight;
node.key = key;
allNodes.add(node);
int size = allNodes.size();
int current = size - 1;
int parentIndex = (current - 1) / 2;
nodePosition.put(node.key, current);
while (parentIndex >= 0) {
Node parentNode = allNodes.get(parentIndex);
Node currentNode = allNodes.get(current);
if (parentNode.weight > currentNode.weight) {
swap(parentNode,currentNode);
updatePositionMap(parentNode.key,currentNode.key,parentIndex,current);
current = parentIndex;
parentIndex = (parentIndex - 1) / 2;
} else {
break;
}
}
}
我不确定您要完成什么,但是您不能将Vertex<Integer>
传递给只需要Integer
东西。 如果要添加Vertex
每个元素,请使用嵌套循环。 否则,您必须以某种方式将Vexter<Integer>
映射到Integer
。
请参见方法签名: BinaryMinHeap<Integer>.add(int, Integer)
但是,您尝试使用这样的Vertex<Integer> vertex
调用它: add(int, Vertex<Integer>)
,这不适用(如错误所述)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.