Cast Map<String, ? 将 Object> 扩展到 Map<String, Object>



在Java 8中,我试图将Map<String, ? extends Object>铸造为Map<String, Object>。尽管我对输入类型的限制(所有?

有什么想法我在哪里推理?有干净的解决方案吗?感谢您的帮助!

此演员不安全。特别是:

Map<String, ? extends Object> before;
before.put("foo", "example"); // <-- illegal
Map<String, Object> after;
after.put("foo", "example"); // <-- legal

观察String不是? extends Object的子类,因为您不知道?,但它是更通用的Object的子类,因此第二个调用是可以的。

相关内容

最新更新