方式

  1. JSON工具包

    1. 将对象转成字符串,之后再转成 Map,这种需要转换2次,相对来说效率比较底;

  2. Java反射

    1. 获取 Bean 类的属性和值,再转换到 Map 对应的键值对中,相对来说这种方法效率高些,在实现上比较麻烦;

  3. Java 的内省(Introspector)

    1. 获取 Bean 类的属性和值,Map与对象互转,效率比较高

  4. apache的BeanUtils (org.apache.commons.beanutils.BeanUtils)

  5. cglib的BeanMap(net.sf.cglib.beans.BeanMap)

总结

如果对性能要求很高,可以采用 java 原生编程实现对象与 map 的互转,如果已经引用了 apache 或者 cglib 的jar,可以利用它提供的方法进行转换,优先推荐使用 cglib,因为 Spring 已经继承了 cglib,在项目中可以直接使用!

推荐使用

 /** 
  * 对象转Map 
  * @param object 
  * @return 
*/ 
public static Map beanToMap(Object object){ 
    return new org.apache.commons.beanutils.BeanMap(object); 
} 
/** 
 * map转对象 
 * @param map 
 * @param beanClass 
 * @param <T> 
 * @return 
*/ 
publicstatic <T> T mapToBean(Map map, Class<T> beanClass) throws Exception { 
    T object = beanClass.newInstance(); 
    org.apache.commons.beanutils.BeanUtils.populate(object, map); 
    return object;
 }



注意:本文归作者所有,未经作者允许,不得转载