我现在正在研究Java项目,并且已经创建了一个名为DistanceQueue的类。它的签名是由
public class DistanceQueue<Integer> extends PriorityQueue<Integer>
在这一节课中,有一种方法
public boolean add(int v)
这会将键值对(v,Double.MAX_VALUE)添加到名为DistanceQueue的HashMap中,该距离称为distances。但是,在add(int v)内部,当我键入
distances.put(v, Double.MAX_VALUE);
我收到以下错误:
DistanceQueue.java:98: error: no suitable method found for put(int,double)
distances.put(v, Double.MAX_VALUE);
^
method HashMap.put(Integer,Double) is not applicable
(actual argument int cannot be converted to Integer by method invocation conversion)
where Integer is a type-variable:
Integer extends Object declared in class ShortestPaths.DistanceQueue
1 error
有谁知道为什么我会收到此错误?我认为Java会自动为您在int和Integer之间转换。有什么简单的方法可以解决吗?
谢谢!
您正在使用Integer
的类型参数,它的名字隐藏的java.lang.Integer
。
public class DistanceQueue<Integer> extends PriorityQueue<Integer>
^^^^^^^
您可能应该只删除type参数:
public class DistanceQueue extends PriorityQueue<Integer>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句