中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Map與JavaBean相互轉換的工具類怎么使用

發布時間:2022-02-19 09:03:56 來源:億速云 閱讀:124 作者:iii 欄目:開發技術

今天小編給大家分享一下Map與JavaBean相互轉換的工具類怎么使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

使用范圍:JavaBean類對象的屬性不能是數組、ListSetMap

public class MapBeanUtil {

    /**
     * JavaBean轉Map
     * @param obj
     * @return
     */
    public static Map<String, Object> bean2Map(Object obj) {
        Map<String, Object> map = new LinkedHashMap<>();
        Class<?> clazz = obj.getClass();

        for (Field field : clazz.getDeclaredFields()) {
            field.setAccessible(true);
            String fieldName = field.getName();
            Object value = null;
            try {
                value = field.get(obj);
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
            if (value == null){
                value = "";
            }
            map.put(fieldName, value);
        }
        return map;
    }

    /**
     * Map轉JavaBean
     * @param clazz
     * @param map
     * @param <T>
     * @return
     */
    public static <T> T map2Bean(final Class<T> clazz, final Map<String, ? extends Object> map) {
        if (map == null) {
            return null;
        }
        T res = null;
        try {
            res = clazz.getDeclaredConstructor().newInstance();
            //獲取到所有屬性,不包括繼承的屬性
            Field[] fields = clazz.getDeclaredFields();
            for (Field field : fields) {
                //獲取字段的修飾符
                int mod = field.getModifiers();
                if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
                    continue;
                }
                //設置對象的訪問權限
                field.setAccessible(true);
                //根據屬性名稱去map獲取value
                if(map.containsKey(field.getName())) {
                    //給對象賦值
                    field.set(res, map.get(field.getName()));
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return res;
    }

    public static void main(String[] args) throws Exception {
        HashMap<String, Object> map = new HashMap<>();
        map.put("id", 1001);
        map.put("username", "zhangsan");
        map.put("password", "123456");
        map.put("nickname", "張三");
        map.put("email", "369950806@qq.com");
        map.put("gender", true);
        map.put("birth", LocalDate.now());
        map.put("avatar", "/aa/bb/ab.jpg");
        map.put("role", "VIP");
        map.put("status", (byte) 1);
        map.put("salt", "ldfkasjghweoiq324");
        map.put("createTime", LocalDateTime.now());
        map.put("updateTime", LocalDateTime.now());

        User user = map2Bean(User.class, map);
        System.out.println(user);

        Map<String, Object> res = bean2Map(user);
        System.out.println(map);
    }
}

User類的代碼:

public class User {
    private Integer id;
    private String username;
    private String password;
    private String nickname;
    private String email;
    private Boolean gender;
    private LocalDate birth;
    private String avatar;
    private String role;
    private Byte status;
    private String salt;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;
}

以上就是“Map與JavaBean相互轉換的工具類怎么使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通州区| 德保县| 长丰县| 克山县| 上高县| 汝阳县| 米林县| 桑日县| 邛崃市| 阳春市| 聊城市| 通化市| 宜兰县| 班戈县| 宁德市| 读书| 宝丰县| 天峻县| 霍邱县| 马尔康县| 嘉义市| 天津市| 鱼台县| 神池县| 丰都县| 塘沽区| 顺平县| 乌兰察布市| 鄂伦春自治旗| 洞口县| 松滋市| 老河口市| 嘉禾县| 盱眙县| 隆尧县| 辛集市| 霸州市| 松潘县| 陆河县| 隆林| 平武县|