將對象轉成Map集合(null或者“”的值自動去除)工具類

package com.videtek.vacp.common.utils;
 
import com.videtek.vacp.common.StringUtils;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
 
/**
 * @author hehaifeng
 * @date 2018-4-28 09:44:41
 * @version 1.0
 * 用於將對象中不爲null 和 ‘’ (空串) 的屬性,轉化成Map集合
 * 如果值的前後有空格 還會去除掉
 * 對傳遞的數值 進行清洗,只傳遞有值得屬性,提高系統效率,減少帶寬佔用
 */
public class ObjectToMapUtil {
 
    /**
     *  對傳入的對象進行數據清洗,將屬性值爲null和""的去掉,其他字段名和屬性值存入map集合
     */
    public static Map<String,String> objectToMap(Object requestParameters) throws IllegalAccessException {
        
        Map<String, String> map = new HashMap<>();
        // 獲取f對象對應類中的所有屬性域
        Field[] fields = requestParameters.getClass().getDeclaredFields();
        for (int i = 0, len = fields.length; i < len; i++) {
            String varName = fields[i].getName();
                // 獲取原來的訪問控制權限
                boolean accessFlag = fields[i].isAccessible();
                // 修改訪問控制權限
                fields[i].setAccessible(true);
                // 獲取在對象f中屬性fields[i]對應的對象中的變量
                Object o = fields[i].get(requestParameters);
                if (o != null && StringUtils.isNotBlank(o.toString().trim())) {
                    map.put(varName, o.toString().trim());
                    // 恢復訪問控制權限
                    fields[i].setAccessible(accessFlag);
                }
        }
        return map;
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章