当我尝试循环我的hashmap时出现此错误,我不明白为什么。
对象无法转换为条目
进入package1:
Components
进入包含错误的包:
protected static final Map<String, Integer> distanceLabels = new HashMap<>();
答案 0 :(得分:9)
只需替换它:
Map distanceLabels = package1.distanceLabels;
有了这个
Map<String, Integer> distanceLabels = package1.distanceLabels;
确实,如果你没有为地图的声明指定任何parameterized types
,编译器就无法知道parameterized types
的{{1}},这就是他提出错误的原因。您希望entries
具体类型。
你需要在两个地方保持一致,以便你实际上有2种方法可以修复它,你不能像上面那样做两件事:
entries
,这显然是最佳方法parametrized types
raw type
(没有定义参数化类型)并创建Map
raw type
但是你必须明确地投射你的Map.Entry
key
和value
预期类型。答案 1 :(得分:1)
尝试使用地图Map<String, Integer>
,如下所示:
Map<String, Integer> distanceLabels = package1.distanceLabels;
for(Entry<String, Integer> entry : distanceLabels.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
}