java6中的foreach有什么问题?

问题描述

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

}
它具有错误提示:\“类型不匹配:无法从元素类型Object转换为Map.Entry \” 你能告诉我原因吗? 谢谢     

解决方法

        
testMap
不是通用类型,因此
testMap.entrySet
返回对象。 您可以像这样纠正它:
Map<String,Object> testMap = new HashMap<String,Object>();
for(Map.Entry<String,Object> entry:testMap.entrySet()){

}
    ,        也许您应该将testMap声明为
Map<String,Object>();
    ,        您的声明
Map testMap = new HashMap();
没有提到testMap.entrySet()应该是type6ѭ类型 解决方法是
Map<String,Object>();
Java6没有问题。     ,        问题不在于for,而是与地图的声明有关,您不应使用原始类型。
Map testMap = new HashMap();
这更像
Map<Object,Object> testMap = new HashMap<Object,Object>();
而您正尝试将其强制转换为
Map.Entry<String,Object>
。 您的解决方案是正确声明对象
Map<String,Object>();