package com.cll.common.util;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
/**
* map封装实体类数据工具类.
*
* @Auther: cll
* @Date: 2018/10/12 10:56
* @Description:
*/
public class MapUtils {
/**
* map封装实体类数据.
*/
public static Map<?, ?> obj2map(Object obj) {
Map<String, Object> map = new HashMap<>();
try {
//获取父类的属性和属性值
Field[] fieldsuper = obj.getClass().getFields();
if (fieldsuper.length > 0) {
for (Field field : fieldsuper) {
field.setAccessible(true);
if (field.get(obj) != null) {
map.put(field.getName(), field.get(obj));
}
}
}
//获取类的属性和属性值
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
if (field.get(obj) != null) {
map.put(field.getName(), field.get(obj));
}
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
}
注意:
1、Class的getDeclaredFields()方法只能获取自身的属性,无法获取父类的属性
2,Class的getFields()方法只能获取父类的属性,无法获取自身的属性