Tôi đang làm việc trên một dự án Java ngay bây giờ và tôi có một lớp mà tôi đã tạo được gọi là DistanceQueue. Nó chữ ký được cho bởiKhông thể thêm cặp (int, double) vào HashMap <Integer, Double>
public class DistanceQueue<Integer> extends PriorityQueue<Integer>
Trong lớp này, có một phương pháp
public boolean add(int v)
mà thêm cặp khóa-giá trị (v, Double.MAX_VALUE) cho một HashMap gọi là khoảng cách đó là trong class DistanceQueue. Tuy nhiên, bên trong của add (int v), khi tôi gõ
distances.put(v, Double.MAX_VALUE);
tôi nhận được lỗi sau:
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
Có ai biết tại sao tôi nhận được lỗi này? Tôi nghĩ Java tự động chuyển đổi giữa int và Integer cho bạn. Có cách nào dễ dàng để tôi có thể sửa nó không?
Cảm ơn!
'distances' là gì? –
khoảng cách là một HashMap. Nó đã được tạo ra với HashMap distance = new HashMap () –
Ryan
Tôi chắc chắn đã nhìn thấy bản sao của câu hỏi này trước đây nhưng chúng thực sự khó tìm kiếm vì chúng có xu hướng có các mô tả vấn đề ngẫu nhiên không gợi ý cho vấn đề thực tế. – 5gon12eder