方式
JSON工具包
将对象转成字符串,之后再转成 Map,这种需要转换2次,相对来说效率比较底;
Java反射
获取 Bean 类的属性和值,再转换到 Map 对应的键值对中,相对来说这种方法效率高些,在实现上比较麻烦;
Java 的内省(Introspector)
获取 Bean 类的属性和值,Map与对象互转,效率比较高
apache的BeanUtils (org.apache.commons.beanutils.BeanUtils)
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;
}注意:本文归作者所有,未经作者允许,不得转载

