将javaBean对象转换成MapString,Object类型对象

思路是采用反射机制,直接获取对象所有字段,遍历的时候在map里put进每个字段的值

1
2
3
4
5
6
7
8
9
public static void transformBeanToMap(Object object,Map<String, Object>map) 
throws IllegalArgumentException, IllegalAccessException {
Field[] declaredFields = object.getClass().getDeclaredFields();
for(Field field:declaredFields){
field.setAccessible(true);
Object value = field.get(object);
map.put(field.getName(), value);
}
}

Field[] declaredFields = object.getClass().getDeclaredFields();

这行代表获取对象所有自己定义的字段,包括被private修饰的字段,如果实现了序列化接口,还会多一个serialVersionUID字段。

field.setAccessible(true);这行如果不加,会报错误一个带有private的错误。

然后就是通过get方法获取字段属性,最后把字段的名称作为key,value作为值存在map里。

当然这些都是最基本的,实际应用中会出现各种需求状况,所以可以在此基础上扩展封装。