[测评系统]--测评系统核心代码库
林致杰
2023-10-10 0f877d7ba62205f94e615eb0ab1950b3350c1436
src/main/java/com/ots/common/utils/MapDataUtil.java
@@ -1,5 +1,8 @@
package com.ots.common.utils;
import cn.hutool.core.collection.CollectionUtil;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -32,4 +35,28 @@
        }
        return returnMap;
    }
    /**
     *  对传入的对象进行数据清洗,将属性值为null和""的去掉,其他字段名和属性值存入map集合
     *  requestParameters 为要转换为键值对的对象
     *  dynamicPara 转换后的键值对添加到的目标集合
     */
    public static void objectToMap(Object requestParameters,Map<String, Object> dynamicPara) throws IllegalAccessException {
        // 获取f对象对应类中的所有属性域
        Field[] fields = requestParameters.getClass().getDeclaredFields();
        for (Field field : fields) {
            String varName = field.getName();
            // 获取原来的访问控制权限
            boolean accessFlag = field.isAccessible();
            // 修改访问控制权限
            field.setAccessible(true);
            // 获取在对象f中属性fields[i]对应的对象中的变量
            Object obj = field.get(requestParameters);
            if (obj != null && StringUtils.isNotBlank(obj.toString()) || CollectionUtil.isNotEmpty((Iterable<?>) obj)) {
                dynamicPara.put(varName, obj);
                // 恢复访问控制权限
                field.setAccessible(accessFlag);
            }
        }
    }
}