我見過的每個 Java Map 迭代示例都推薦這種范式:
for (Map.Entry<String, String> item : hashMap.entrySet()) {
String key = item.getKey();
String value = item.getValue();
}
但是,當我嘗試這樣做時,我的編譯器會發出警告:
Incompatible types: java.lang.Object cannot be converted to java.util.Map.Entry<java.lang.String, java.lang.Object>
這是我的代碼 - 我看到的唯一問題是我正在迭代 Map 物件的陣列,然后迭代單個 Map 的元素:
result = getArrayOfMaps();
// Force to List LinkedHashMap
List<LinkedHashMap> result2 = new ArrayList<LinkedHashMap>();
for (Map m : result) {
LinkedHashMap<String, Object> n = new LinkedHashMap<>();
for (Map.Entry<String, Object> entry : m.entrySet()) {
n.put(entry.getKey(),entry.getValue());
}
result2.add(n);
}
我錯過了一些明顯的東西嗎?
uj5u.com熱心網友回復:
發生這種情況是因為您使用的是原始型別: aList<LinkedHashMap>而不是 a List<LinkedHashMap<Something, SomethingElse>>。結果, theentrySet只是 aSet而不是 a Set<Map.Entry<Something, SomethingElse>>。不要那樣做。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/467948.html
標籤:爪哇
