获得“类型不匹配:不能从转换的ArrayList <HashMap的<字符串,字符串>>将列表<地图<String,字符串>>”在实例映射列表

船坞:
List<Map<String, String>> recordMapList = new ArrayList<HashMap<String,String>>();

上面一行给出了错误:类型不匹配:不能从ArrayList的转换>目录>

但问题消失,如果使用HashMap中,而不是在地图左侧。有人能告诉我为什么会这样。我需要有左侧包含地图,因为我可能会使用到分配的LinkedHashMap相同的变量中右击侧像,

List<Map<String, String>> recordMapList = new ArrayList<LinkedHashMap <String,String>>();

请帮忙。

凯文Cruijssen:

虽然ArrayList是一个子类List,并且Map是的一个子类HashMap,一个List<Map>是不是一个子类List<HashMap>同样,你不能施放List<HashMap>List<Map>如果我们能,这将意味着我们可以添加我们说TreeMap我们的List<Map>,然后将其转换为一个List<HashMap>,从而侵犯的原合同List<HashMap>

个人而言,我只想用一个菱形运算符(Java的7+)如果recordMapList立即创建-instance:

List<Map<String, String>> recordMapList = new ArrayList<>();

如果它是在其他地方只创建List可以是ArrayList,但其余的将是相同的。(注:你当然可以仍然使用钻石经营者在这里为好,但如果在创建实例和实际现场是分开的,我个人更喜欢使用的类型,因此它的瞬间不清楚什么类型进入名单,而无需跳转到该在代码的实际领域。)

List<Map<String, String>> recordMapList;
...
recordMapList = new ArrayList<Map<String, String>>();

在这两种情况下,您可以将您的HashMap<String, String>实例的recordMapList

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章