当前位置: 代码迷 >> J2EE >> 关于java反射解决方法
  详细解决方案

关于java反射解决方法

热度:49   发布时间:2016-04-17 23:52:39.0
关于java反射
我现在有个Map<String , Object> map , 需要依据key对map的value进行强转,比如说 Map<"student",Student> , Map<"teacher",Teacher> 我想依据key对object动态强转, 跪求大神给点思路 
------解决方案--------------------
public static void map(Map<String ,Object> map){
  Set<Map.Entry<String ,Object>> e=map.entrySet();
  for(Map.Entry<String ,Object> s:e){
  try {
mapToBean(s.getValue(),Class.forName(s.getKey()));
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
  }
 
  }
public static <T>T mapToBean(Object obj,Class<T> B) {




return (T)obj;

}
------解决方案--------------------
Key用String类型的不太安全,可用Class类型:

public class RefMapTest {
    public static void main(String[] args) {
        Map<Class,Object> map = new HashMap<Class, Object>();
        
        map.put(String.class, "abc");
        map.put(Integer.class, 22);
        
        for(Map.Entry<Class, Object> entry:map.entrySet()){
            Class clz = entry.getKey();
            Object obj = entry.getValue();
            System.out.println(clz.cast(obj));
        }
    }
}


这样的转换2L方法类似,但是感觉和不转换直接使用value也没啥区别,不知道LZ想要什么效果。
  相关解决方案