繁体   English   中英

在Java中调用通用参数化方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM