[英]Casting a HashMap
我正在尝试铸造Hasmap
我有这个hasmap:
Map<String, Object> requestargs = new Map<String, Object>();
另一方面,我有一个方法为我带来了以下哈希Map<String, Document>
: Map<String, Document>
MultipartForm form = MgnlContext.getWebContext().getPostedForm();
该方法是getDocuments();
我需要将此方法的返回值放入我的哈希图中,使其如下所示:
requestargs = form.getDocuments();
但是我不知道如何将Hasmap og(String,Document)转换为(String,Object)
谢谢
除非可以使用通配符
Map<String, ? extends Object> requestargs
您将需要将地图复制到新地图中:
requestargs = new HashMap<String, Object>(form.getDocuments());
这两种类型不直接相关。 如果您可以直接进行分配(或通过强制转换),则可以在地图中插入非Document
类型的值,这将是类型不安全的:
Map<String, Document> docs = form.getDocuments();
Map<String, Object> requestargs = docs; // not actually allowed
requestargs.put("Foo", new Object());
for (Document doc : docs.values()) {
// doc isn't necessarily a Document! ClassCastExceptions abound.
}
为了防止发生此问题,类型系统禁止这种分配。
通配符之所以起作用,是因为它无法调用地图上的put
,因为无法知道可以安全地将哪些类型放入地图中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.