方式
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; }
注意:本文归作者所有,未经作者允许,不得转载