思路是采用反射机制,直接获取对象所有字段,遍历的时候在map里put进每个字段的值
1 | public static void transformBeanToMap(Object object,Map<String, Object>map) |
Field[] declaredFields = object.getClass().getDeclaredFields();
这行代表获取对象所有自己定义的字段,包括被private修饰的字段,如果实现了序列化接口,还会多一个serialVersionUID字段。
field.setAccessible(true);这行如果不加,会报错误一个带有private的错误。
然后就是通过get方法获取字段属性,最后把字段的名称作为key,value作为值存在map里。
当然这些都是最基本的,实际应用中会出现各种需求状况,所以可以在此基础上扩展封装。