对象Bean与Map互转,是经常遇到的场景。当然这个是属于复杂 Bean 对象了,比如组合实体类的嵌套,本文构建测试实例,记录并总结相关解决办法,代码地址:https://github.com/hkdijia/ObjectConverts.git dev 分支

转换方法

大致分成两类,基于 JDK :

  1. 利用 Java 的内省(Introspector) 实现,获取 Bean 类的属性和值,Map与对象互转,效率比较高;
  2. 利用 Java 反射,获取 Bean 类的属性和值,再转换到 Map 对应的键值对中,相对来说这种方法效率高些,在实现上比较麻烦;

基于第三方工具包的实现:

  1. 利用 JSON 工具包,将对象转成字符串,之后再转成 Map,这种需要转换2次,相对来说效率比较底;
  2. 利用 apache 中的 BeanUtils工具包进行操作,底层实现类似方法1;
  3. 利用net.sf.cglib.beans.BeanMap类中的方法,这种方式效率也非常高;

编码实现

内省实现