将对象转换为映射<! - ?,? - >,而不使用未选中的强制转换警告

时间:2015-10-11 18:24:36

标签: java object dictionary casting

我正在开发一个需要绕过对象的项目,我正在尝试做的是将该对象转回到这样的Map中。

Object o = new Map<String, String>();
Map<String,String> map = (Map<String,String>)o;

这似乎按预期工作,但我得到了

  

类型安全:从对象到地图的未选中投射

我知道我可以使用@SuppressWarnings("unchecked"),但我更愿意以一种我没有警告的方式来做。怎么会这样做?

2 个答案:

答案 0 :(得分:0)

如果lefto Map,您可以查看。但是你无法检查通用参数o instanceof Map,因为它们在运行时被删除了。因此,即使进行<String,String>检查,您也会收到警告。

答案 1 :(得分:-1)

Map扩展Object以来,您只需使用Map引用而非向下转发Object

因此,在您的代码中,只需替换

即可
Object o = new Map<String, String>();

Map<String, String> o = new Map<>();

然后你的第二行(未经检查的演员阵容)变得不必要了。