泛型-如何将地图转移到地图?延伸x?

时间:2018-11-17 13:24:54

标签: java generics

Map<String, ? extends MyClass> map;//instantiate and put values somewhere
Map<String, MyClass> map2; //instantiate and put values somewhere.

鉴于以上地图,如何使用mapmap2转移到map2,以及如何从map转移到putAll(),或实现{{1 }}效果?

如果我知道班级为putAll(),可以以某种方式将其强制转换为InstanceClass吗?

2 个答案:

答案 0 :(得分:1)

  

Map<String, ? extends MyClass> map;//instantiate and put values somewhere

通配符表达式? extends MyClass表示生产者,这意味着您不能向其添加对象,因为您不知道地图值当前所持有的对象类型。您只能从中读取内容。

更多信息可以在下面的herehere答案中找到。

答案 1 :(得分:0)

您可以按条目复制它们。这是一种使用Map.forEach的方法:

map.forEach(map2::put);