1
zhang
18 小时以前 675c3b5d83b928c2bfbb84cd99a7d3f222d4432c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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;
    }
 
}