繁体   English   中英

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

[英]Generics - How to transfer map to map with ? extends x?

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

给定上面的地图,如何使用putAll()map转移到map2以及从map2转移到map或实现putAll()效果?

如果我知道该类是InstanceClass ,我可以以某种方式将其强制转换为Map<String, InstanceClass>map;

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

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

更多信息可在下列SO答案被发现这里这里

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

map.forEach(map2::put);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM