一、Object的属性和值转换到Map中
代码如下:
public static Map<String,Object> objectToMap(Object o) throws IllegalAccessException {
HashMap<String, Object> map = new HashMap<>();
//获取class对象
Class<?> clazz = o.getClass();
//获取对象的Field对象数组
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
//获取字段的名称
String fieldName = field.getName();
//根据字段名获取字段的属性值
Object value = field.get(o);
if(value != null){
map.put(fieldName,value);
}
}
return map;
}
二、将Map的key和value封装到object中
public static <T> T mapToObject(Map<String, Object> map, Class<T> clazz) throws Exception{
//创建实例
T instance = clazz.newInstance();
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
Object o = map.get(field.getName());
field.setAccessible(true);
field.set(instance,o);
}
return instance;
}