如何将Map <! - ?,? - >转换为Java中的类型化地图?

时间:2012-10-17 09:09:16

标签: java map casting

假设我们有多个不同的无类型Map<?,?>未知类型键和未知类型值的地图,并且已知其中包含Map<String,Object>Map<Integer,Object>地图。

是否有办法检查并区分并安全地将它们投射到适当的类型地图中?

2 个答案:

答案 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>");
        }