我正在开发一个需要绕过对象的项目,我正在尝试做的是将该对象转回到这样的Map中。
Object o = new Map<String, String>();
Map<String,String> map = (Map<String,String>)o;
这似乎按预期工作,但我得到了
类型安全:从对象到地图的未选中投射
我知道我可以使用@SuppressWarnings("unchecked")
,但我更愿意以一种我没有警告的方式来做。怎么会这样做?
答案 0 :(得分:0)
如果left
是o
Map
,您可以查看。但是你无法检查通用参数o instanceof Map
,因为它们在运行时被删除了。因此,即使进行<String,String>
检查,您也会收到警告。
答案 1 :(得分:-1)
自Map
扩展Object
以来,您只需使用Map
引用而非向下转发Object
。
因此,在您的代码中,只需替换
即可Object o = new Map<String, String>();
与
Map<String, String> o = new Map<>();
然后你的第二行(未经检查的演员阵容)变得不必要了。