反射(4) : 获取对象的所有字段名和字段值


import java.lang.reflect.Field;
import java.util.*;

 

    /**
     * 获取对象的所有字段名和字段值
     *
     * @param object
     * @return
     */
    public static Map<String, Object> getFieldNameAndValue(Object object) {
        Map<String, Object> map = new HashMap<>();
        Class clazz = object.getClass();
        List<Field> fieldList = new ArrayList<>();
        while (clazz != null) {
            fieldList.addAll(new ArrayList<>(Arrays.asList(clazz.getDeclaredFields())));
            clazz = clazz.getSuperclass();
        }
        Field[] fields = new Field[fieldList.size()];
        fieldList.toArray(fields);
        try {
            for (Field field : fields) {
                field.setAccessible(true);
                map.put(field.getName(), field.get(object));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return map;
    }

END。


版权声明:本文为Lxinccode原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。