package com.zy.acs.hex.utils;
|
|
import org.springframework.util.ReflectionUtils;
|
|
import java.lang.reflect.Modifier;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
public class ObjectToMapUtils {
|
|
public static Map<String, Object> objectToMap(Object obj, boolean includeSuperclass) {
|
Map<String, Object> map = new HashMap<>();
|
if (obj == null) {
|
return map;
|
}
|
|
ReflectionUtils.FieldCallback callback = field -> {
|
if (Modifier.isStatic(field.getModifiers())) {
|
return;
|
}
|
ReflectionUtils.makeAccessible(field);
|
map.put(field.getName(), ReflectionUtils.getField(field, obj));
|
};
|
|
if (includeSuperclass) {
|
// 包含父类字段
|
ReflectionUtils.doWithFields(obj.getClass(), callback);
|
} else {
|
// 仅当前类字段
|
ReflectionUtils.doWithLocalFields(obj.getClass(), callback);
|
}
|
return map;
|
}
|
|
}
|