2011-06-13 16 views
5
Map testMap = new HashMap(); 
for(Map.Entry<String, Object> entry:testMap.entrySet()){ 

} 

它有錯誤提示:「類型不匹配:不能從元素類型的對象轉換爲Map.Entry的」關於java6中foreach的問題是什麼?

你能告訴我原因嗎?

感謝

回答

6

testMap是不是通用型的,所以testMap.entrySet返回的對象。

您可以糾正這樣的:

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

} 
+0

你也應該定義你的'testMap'到'地圖<字符串,對象> testMap' – 2011-06-13 07:30:22

+0

只是'''地圖<字符串,對象> testMap = new HashMap <>();'''足夠了非常感謝 – 2017-07-17 22:46:52

6

也許你應該申報testMap作爲

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

你的宣言

Map testMap = new HashMap(); 

沒有提到testMap.entrySet()應是類型<String, Object>

解決方案是

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

Java6沒有問題。

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>(); 
+0

! – jimmy 2011-06-13 08:34:35