Java 无法投射<;对象,映射<;对象,对象>&燃气轮机;映射到更具体的类型化映射
我正试着投射一张这样的地图:Java 无法投射<;对象,映射<;对象,对象>&燃气轮机;映射到更具体的类型化映射,java,object,map,casting,Java,Object,Map,Casting,我正试着投射一张这样的地图: Map<Integer, Map<String, String>> map = (HashMap<Integer, Map<String, String>>) pMap; Map<? super Object, ? super Object> Map= (HashMap)pMap; pMap类型为: Map<Object, Map<Object, Obj
Map<Integer, Map<String, String>> map =
(HashMap<Integer, Map<String, String>>) pMap;
Map<? super Object, ? super Object>
Map=
(HashMap)pMap;
pMap类型为:
Map<Object, Map<Object, Object>> pMap
映射pMap
不幸的是,它不起作用,我很想知道为什么,以及是否有可能避免这个问题 这是因为即使
整数
是对象
的子类型,映射
也不是映射
的子类型
你根本不能这样做
这将在中进一步解释。这是因为即使
整数
是对象
的子类型,映射
也不是映射
的子类型
你根本不能这样做
这将在中作进一步解释。我对泛型类不太熟悉,但您能试试Map吗
将整数替换为?它可以很容易地对整数进行装箱,正如您在上面所写的那样,这个键也可以是字符串,所以我希望它对您有用。我对泛型类不太熟悉,但您能试试Map吗
将整数替换为?它将很容易地对整数进行装箱,正如您在上面所写的,这个键也可以是字符串,因此我希望它对您有用。因此,以下是我为避免此问题所做的: 我按如下方式键入地图:
Map<Integer, Map<String, String>> map =
(HashMap<Integer, Map<String, String>>) pMap;
Map<? super Object, ? super Object>
Map因此,以下是我为避免这个问题所做的:
我按如下方式键入地图:
Map<Integer, Map<String, String>> map =
(HashMap<Integer, Map<String, String>>) pMap;
Map<? super Object, ? super Object>
MAPIP如果您确定pMap的键是整数,那么您可以为pMap使用以下类型…Map pMapWell这就是问题所在,有时我会使用字符串而不是整数作为键。然后您可以将“Map”的键也声明为Object,并在对键或值进行操作时执行强制转换。如果您确定pMap的键是整数,那么您可以对pMap使用以下类型…Map pMapWell这就是问题所在,有时我会使用字符串而不是整数作为键。然后您可以将“Map”的键声明为Object,在操作键或值的同时进行铸造。好的,谢谢。我想我必须找到另一种优雅的方式使它尽可能的通用。好的,谢谢。我想我必须找到另一种优雅的方式使它尽可能的通用。我尝试了?
而不是对象
,但它是一样的,演员是被禁止的。我所做的是通过迭代器投射,我不能直接投射贴图。谢谢你的回答。我试过使用?
而不是对象
,但都是一样的,演员是被禁止的。我所做的是通过迭代器投射,我不能直接投射贴图。谢谢你的回答。