假设我们有多个不同的无类型Map<?,?>
未知类型键和未知类型值的地图,并且已知其中包含Map<String,Object>
和Map<Integer,Object>
地图。
是否有办法检查并区分并安全地将它们投射到适当的类型地图中?
答案 0 :(得分:1)
由于类型擦除,无法在运行时确定泛型类的类型参数。但是,如果填充了地图,并且您知道每个Map都是Map(String,Object)或Map(Integer,Object),则只需检查每个Map中的第一个键并进行相应的转换。
这是什么用例?
答案 1 :(得分:1)
试
if(((Map.Entry)map.entrySet().iterator().next()).getKey().getClass().getName().equals("java.lang.Integer")){
System.out.println("Map<Integer,Object>");
}else{
System.out.println("Map<String,Object>");
}