/**
* 对象obj转map(默认过滤空属性值)
* @param obj
* @return
* @throws Exception
*/
public static Map<String,Object> object2Map(Object obj) throws Exception{
Map<String, Object> reMap = object2Map(obj,true);
return reMap;
}
/**
* 对象obj转map
* @param obj 需转map的对象
* @param isFilterNullAttr 是否过滤空属性值
* @return
* @throws Exception
*/
public static Map<String,Object> object2Map(Object obj,boolean isFilterNullAttr) throws Exception{
Map<String,Object> reMap = new HashMap<>(16);
if(Objects.isNull(obj)){
return null;
}
if(obj instanceof Map){
return (Map<String,Object>)obj;
}
Class<?> objClass = obj.getClass();
while (null != objClass){
Field[] fields = objClass.getDeclaredFields();
for (int i = 0; i < fields.length; i++){
Field field = objClass.getDeclaredField(fields[i].getName());
field.setAccessible(true);
Object o = field.get(obj);
if(isFilterNullAttr){
if(!ObjectUtils.isEmpty(o)){
reMap.put(fields[i].getName(),o);
}
}else{
reMap.put(fields[i].getName(),o);
}
}
objClass = objClass.getSuperclass();
}
return reMap;
}