对象无法转换为Entry <string,integer>

时间:2016-05-09 18:03:31

标签: java hashmap

当我尝试循环我的hashmap时出现此错误,我不明白为什么。

对象无法转换为条目

进入package1:

Components

进入包含错误的包:

protected static final Map<String, Integer> distanceLabels = new HashMap<>();

2 个答案:

答案 0 :(得分:9)

只需替换它:

Map distanceLabels = package1.distanceLabels;

有了这个

Map<String, Integer> distanceLabels = package1.distanceLabels;

确实,如果你没有为地图的声明指定任何parameterized types,编译器就无法知道parameterized types的{​​{1}},这就是他提出错误的原因。您希望entries具体类型。

你需要在两个地方保持一致,以便你实际上有2种方法可以修复它,你不能像上面那样做两件事:

  1. 您可以在上述两个地方明确指定entries,这显然是最佳方法
  2. 你可以像你一样创建parametrized types raw type(没有定义参数化类型)并创建Map raw type但是你必须明确地投射你的Map.Entry keyvalue预期类型。

答案 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();

  }