2016-10-06 30 views
0

我得到了一個HashMap並想迭代它。但不知何故,它說我有不兼容的類型。迭代散列表:不兼容的類型

Required: java.util.Map.Entry <java.lang.String , java.lang.String> 
Found : java.lang.Object 

繼承人我的代碼:

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

    } 
+4

您的地圖目前是原始類型,使用Map 而不是Map。 – Nevay

回答

1

你的地圖認定中似乎是錯誤的。

Map<String, String> map= new HashMap<String, String>(); 
1

變量的聲明類型是決定因素,而不是初始化。目前您的聲明類型是一個原始地圖類型,但應該是通用的:

Map<String, String> hashmapMessagesKey = new HashMap<>(); 

此外,根據您的用例所示,將每一種方法可能是更具可讀性,你可以命名的鍵和值,而不是使用entry.getKey()和entry.getValue():

hashmapMessagesKey.forEach((key, value) -> { 
    // loop body 
}); 
+0

我明白了。錯誤代碼是有點誤導。謝謝 !我會接受你的答案 –