在reflect基础上的map和object转化

来源:互联网 发布:java jackson 编辑:程序博客网 时间:2024/05/20 23:59

/**
 * Change the map structure to list and change the list to map structure

 * Object为任意的对象
 * @author LIUTIANFANG
 * @version 2011-8-16 下午01:16:11
 */
public class MapObjectUtil {
 /**
  * 将对象类型的数据结构变更为Map类型的数据结构
  * @param Object
  * @return Map
  */
 public static Map<Object,Object> objectToMap(Object o){
  Map<Object, Object> map = new HashMap<Object, Object>();
  Class a = o.getClass();
  Field[] fs = a.getDeclaredFields();
  for (int i = 0; i < fs.length; i++) {
   map.put(fs[i].getName(),  ReflectUtil.getFieldValue(o, fs[i].getName(), Object.class));
  }
  return map;
 }
 /**
  * 将map类型的数据结构变更为object类型的数据结构
  * @param Map<Object,Object>
  * @return Object
  */
 public static Object mapToObject(Map<Object,Object> m , Object ob){
  for (Iterator iterator = m.entrySet().iterator(); iterator.hasNext();) {
   Entry o =  (Entry) iterator.next();
   ReflectUtil.setFieldValue(ob,  (String) o.getKey() , Object.class , o.getValue());
  }
  return ob;
 }
 
 /**
  * 将map类型的数据结构变更为object类型的数据结构(忽略大小写)
  * @param Map<Object,Object>
  * @return Object
  */
 public static Object mapToObjectDefault(Map<Object,Object> m , Object ob){
  for (Iterator iterator = m.entrySet().iterator(); iterator.hasNext();) {
   Entry o =  (Entry) iterator.next();
   ReflectUtil.setFieldValueDefault(ob,  (String) o.getKey() , Object.class , o.getValue());
  }
  return ob;
 }
}

// end

 

引用的ReflectUtil类地址: http://blog.csdn.net/s445320/article/details/8929415