【发布时间】:2018-02-02 12:57:37
【问题描述】:
我有这个代码:
List<Map<Object, Object>> list = new ArrayList<>();
list.add(new HashMap<>().put("key", "value"));
但是它告诉我:
无法在列表中添加 (java.util.Map) 应用于(java.lang.Object)
为什么列表的add 函数不能将Map 实例读取为Object 实例?但如果它是一个简单的列表,它
List<Object> simpleList = new
simpleList.add("
simpleList.add(new HashMap<>().put("sample","sample"));
编辑:
这也不起作用:
Map<String, String> map = new HashMap<>();
map.put("key", "value");
list.add(map);
列表中的 add(java.util.Map) 不能 应用于(java.util.Map)
编辑 2:
感谢您的回答,我现在明白为什么它不起作用了。那么实现这一点的最佳方法是什么?它在循环中迭代,因为我将多个 HashMap 添加到列表中。
Map<Object, Object> map = new HashMap<>();
something.foreach{ thing ->{
if(map!=null)
map.clear();
map.put("key", thing);
list.add(map);
}
}
map 是可变的吗?还是这是错误的代码?
【问题讨论】:
-
因为
Map.put()返回的是值,而不是地图本身。 -
在最后一个样本上尝试了 Map
标签: java list dictionary generics compiler-errors