关于java 6中foreach的问题是什么?

时间:2011-06-13 07:26:01

标签: java

Map testMap = new HashMap();
for(Map.Entry<String, Object> entry:testMap.entrySet()){

}

它有错误提示:“类型不匹配:无法从元素类型Object转换为Map.Entry”

你能告诉我原因吗?

感谢

4 个答案:

答案 0 :(得分:6)

testMap不是通用类型,因此testMap.entrySet会返回对象。

你可以这样纠正:

Map<String, Object> testMap = new HashMap<String, Object>();
for(Map.Entry<String, Object> entry:testMap.entrySet()){

}

答案 1 :(得分:6)

也许您应该将testMap声明为

Map<String, Object> testMap = new HashMap<String, Object>();

答案 2 :(得分:2)

您的声明

Map testMap = new HashMap();

没有提到testMap.entrySet()应该是<String, Object>

类型

解决方案是

Map<String, Object> testMap = new HashMap<String, Object>();

Java6没有问题。

答案 3 :(得分:0)

问题不在于你的地图声明,你不应该使用raw types

Map testMap = new HashMap();

这更像是

Map<Object,Object> testMap = new HashMap<Object,Object>();

并且您正尝试将其转换为Map.Entry<String, Object>

您的解决方案是正确声明对象

Map<String,Object> testMap = new HashMap<String,Object>();