我在SO上看到this question,它看起来可以将Map<String, Object>
转换为Map<String, String>
。它尝试对地图的值进行向下转换。
我已经阅读了答案,需要对地图进行迭代,将其值 downcast 并放入新的地图(具有不同的变体)。
我正试图做相反的事情:我想上传该值。我想将Map<String, SomeClass>
转换为Map<String, SomeUpperClass>
,其中SomeClass extends SomeUpperClass
的问题与我之前提到的问题相同。
编译器告诉我:
不兼容的类型:java.util.Map
不能 转换为java.util.Map
我知道向下转换可能很危险且容易出错,但是我不明白为什么我必须将整个地图迭代为向上转换值才能将它们放入新的地图中。