当我尝试循环我的hashmap时出现此错误,我不知道为什么.
对象无法转换为Entry
进入package1:
protected static final Map<String, Integer> distanceLabels = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)
进入包有错误的包:
Map distanceLabels = package1.distanceLabels;
for (Map.Entry<String, Integer> entry : distanceLabels.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
// ...
}
Run Code Online (Sandbox Code Playgroud)
只需更换:
Map distanceLabels = package1.distanceLabels;
Run Code Online (Sandbox Code Playgroud)
有了这个
Map<String, Integer> distanceLabels = package1.distanceLabels;
Run Code Online (Sandbox Code Playgroud)
事实上,如果你不指定任何parameterized types到地图的声明,编译器无法知道parameterized types的的entries这也是他为什么,因为你希望产生一个错误的原因entries特定的类型.
您需要在两个地方保持一致,以便实际上有两种方法可以修复它,您不能像上面那样在两者之间做一些事情:
parametrized types在上面提出的两个地方明确指定,这显然是最好的方法raw type的Map像你一样(没有定义参数化类型)和创建raw type的Map.Entry,但那么你将不得不明确地投你key和你value的预期类型.| 归档时间: |
|
| 查看次数: |
4587 次 |
| 最近记录: |