最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Map與對(duì)象之間互相轉(zhuǎn)換的幾種常用方式

 更新時(shí)間:2024年01月26日 15:42:23   作者:Jon?Young  
在Java中將對(duì)象和Map相互轉(zhuǎn)換是常見的操作,可以通過不同的方式實(shí)現(xiàn)這種轉(zhuǎn)換,下面這篇文章主要給大家介紹了關(guān)于Java中Map與對(duì)象之間互相轉(zhuǎn)換的幾種常用方式,需要的朋友可以參考下

前言

Map在日常開發(fā)應(yīng)用中的頻率很高,最常用的實(shí)現(xiàn)類是HashMap和有序的TreeMap。在企業(yè)級(jí)應(yīng)用中,更多的應(yīng)用場景是關(guān)聯(lián)JSON和Object使用,Map可以用于JSON傳參、接收J(rèn)SON參數(shù),返回JSON數(shù)據(jù)等,也可以用于對(duì)象處理,開發(fā)者可以省一些簡單實(shí)體類,用map來替代。

接下來就提供Map與Object之間互相轉(zhuǎn)換的幾種方式:

Map轉(zhuǎn)Object

方式一:通過BeanMap轉(zhuǎn)

創(chuàng)建BeanMap并傳入待轉(zhuǎn)對(duì)象,直接把Map的值put到BeanMap中,就轉(zhuǎn)換成功了

	public static Map<String,Object> initMap(){
        Map<String,Object> map = new HashMap<>();
        map.put("userId", 1L);
        map.put("userName", "張三");
        map.put("age", 18);
        map.put("weight", 58.6);
        return map;
    }
    
	public void mapToObj1(){
        Map<String,Object> map = initMap();
        User user = new User();
        BeanMap beanMap = BeanMap.create(user);
        beanMap.putAll(map);
        System.out.println(user);
    }

方式二:通過fastJson轉(zhuǎn)

先把map轉(zhuǎn)為json字符串,再把json字符串轉(zhuǎn)為對(duì)象

	public void mapToObj2(){
        Map<String,Object> map = initMap();
        String s = JSON.toJSONString(map);
        User user = JSON.parseObject(s, User.class);
        System.out.println(user);
    }

方式三:通過gson轉(zhuǎn)

先把map轉(zhuǎn)為json字符串,再把json字符串轉(zhuǎn)為對(duì)象

	public void mapToObj3(){
        Map<String,Object> map = initMap();
        Gson gson = new Gson();
        String s = gson.toJson(map);
        User user = gson.fromJson(s, User.class);
        System.out.println(user);
    }

Object轉(zhuǎn)Map

方式一:通過BeanMap轉(zhuǎn)

實(shí)例化BeanMap的時(shí)候傳入對(duì)象,返回值就是Map

	public static User initUser(){
        User user = new User();
        user.setUserId(2L);
        user.setUserName("李四");
        user.setAge(19);
        user.setWeight(60.4);
        return user;
    }
    
	public void objToMap1(){
        User user = initUser();
        BeanMap beanMap = BeanMap.create(user);
        Map<String, Object> map = beanMap;
        System.out.println(map);
    }

方式二:通過fastJson轉(zhuǎn)

先把對(duì)象轉(zhuǎn)為json字符串,再把json字符串轉(zhuǎn)為泛型Map或HashMap

	public void objToMap2(){
        User user = initUser();
        String s = JSON.toJSONString(user);
        Map<String, Object> map = JSON.parseObject(s, new TypeReference<Map<String,Object>>(){});
        //下面這種方式也可以轉(zhuǎn)
        //Map<String, Object> map = JSON.parseObject(s, HashMap.class);
        System.out.println(map);
    }

方式三:通過gson轉(zhuǎn)(不推薦)

先把對(duì)象轉(zhuǎn)為json字符串,再把json字符串轉(zhuǎn)為HashMap

	public void objToMap3(){
        User user = initUser();
        Gson gson = new Gson();
        String s = gson.toJson(user);
        Map<String, Object> map = gson.fromJson(s, HashMap.class);
        System.out.println(map);
    }

不推薦理由

如下圖,gson轉(zhuǎn)map的時(shí)候,會(huì)把int型或long型的整形數(shù)據(jù)全部轉(zhuǎn)換為double類型的浮點(diǎn)型,不能實(shí)現(xiàn)準(zhǔn)確轉(zhuǎn)換。只有數(shù)據(jù)類型全部為String時(shí)才可以放心使用!

總結(jié) 

到此這篇關(guān)于Java中Map與對(duì)象之間互相轉(zhuǎn)換的幾種常用方式的文章就介紹到這了,更多相關(guān)Java Map與對(duì)象互相轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用Java實(shí)現(xiàn)圖片馬賽克效果

    利用Java實(shí)現(xiàn)圖片馬賽克效果

    馬賽克效果是一種常見的圖像處理技術(shù),通過將圖像劃分為多個(gè)小塊并對(duì)每個(gè)小塊進(jìn)行平均色處理,模擬馬賽克的效果,在本項(xiàng)目中,我們將使用Java的Swing庫和圖像處理技術(shù)來實(shí)現(xiàn)圖片的馬賽克特效,需要的朋友可以參考下
    2025-02-02
  • SpringBoot深入分析講解監(jiān)聽器模式下

    SpringBoot深入分析講解監(jiān)聽器模式下

    監(jiān)聽器模式,大家應(yīng)該并不陌生,主要的組成要素包括了事件、監(jiān)聽器以及廣播器;當(dāng)事件發(fā)生時(shí),廣播器負(fù)責(zé)將事件傳遞給所有已知的監(jiān)聽器,而監(jiān)聽器會(huì)對(duì)自己感興趣的事件進(jìn)行處理
    2022-07-07
  • SpringBoot集成SpirePDF實(shí)現(xiàn)文本替換功能

    SpringBoot集成SpirePDF實(shí)現(xiàn)文本替換功能

    SpirePDF是一個(gè)用于.NET平臺(tái)的高級(jí)PDF文檔處理庫,它提供了一套完整的API,允許開發(fā)者創(chuàng)建、編輯、轉(zhuǎn)換、合并、分割和解析PDF文件本文給大家介紹了SpringBoot集成SpirePDF實(shí)現(xiàn)文本替換功能,需要的朋友可以參考下
    2024-09-09
  • Java常用加密算法實(shí)例總結(jié)

    Java常用加密算法實(shí)例總結(jié)

    這篇文章主要介紹了Java常用加密算法,結(jié)合實(shí)例形式總結(jié)分析了base64、md5、sha、rsa、des等加密算法實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-10-10
  • java參數(shù)傳值代碼舉例

    java參數(shù)傳值代碼舉例

    在編程中往方法中傳遞參數(shù)的方法往往有兩種,一種是值傳遞,一種是引用傳遞,而在java中所有的參數(shù)傳遞全部都是值傳遞,這篇文章主要給大家介紹了關(guān)于java參數(shù)傳值的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • SpringBoot整合Drools規(guī)則引擎動(dòng)態(tài)生成業(yè)務(wù)規(guī)則的實(shí)現(xiàn)

    SpringBoot整合Drools規(guī)則引擎動(dòng)態(tài)生成業(yè)務(wù)規(guī)則的實(shí)現(xiàn)

    本文主要介紹了SpringBoot整合Drools規(guī)則引擎動(dòng)態(tài)生成業(yè)務(wù)規(guī)則的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Java代碼實(shí)現(xiàn)簡單酒店管理系統(tǒng)

    Java代碼實(shí)現(xiàn)簡單酒店管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java代碼實(shí)現(xiàn)簡單酒店管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • SpringBoot文件上傳(本地存儲(chǔ))回顯前端操作方法

    SpringBoot文件上傳(本地存儲(chǔ))回顯前端操作方法

    這篇文章主要介紹了SpringBoot文件上傳(本地存儲(chǔ))回顯前端操作方法的相關(guān)資料,文中講解了文件上傳的基本原理,包括前端調(diào)用后端接口上傳文件,后端返回文件路徑給前端,前端通過路徑訪問圖片,需要的朋友可以參考下
    2024-11-11
  • Java中的ConcurrentHashMap原理詳解

    Java中的ConcurrentHashMap原理詳解

    這篇文章主要介紹了Java中的ConcurrentHashMap原理詳解,ConcurrentHashMap和HashMap一樣,是一個(gè)存放鍵值對(duì)的容器,使用hash算法來獲取值的地址,因此時(shí)間復(fù)雜度是O(1),查詢非???需要的朋友可以參考下
    2023-12-12
  • J2EE項(xiàng)目代碼編寫規(guī)范分享

    J2EE項(xiàng)目代碼編寫規(guī)范分享

    這篇文章主要介紹了J2EE項(xiàng)目代碼編寫規(guī)范分享,需要的朋友可以參考下
    2014-10-10

最新評(píng)論

定南县| 合山市| 涞源县| 吉林省| 江油市| 师宗县| 微博| 固阳县| 板桥市| 富裕县| 浮梁县| 阜宁县| 尖扎县| 河北省| 麦盖提县| 突泉县| 田林县| 乌兰县| 南溪县| 襄城县| 正镶白旗| 兴安县| 乐平市| 枝江市| 林西县| 伊春市| 明水县| 桂阳县| 兰坪| 昌都县| 三门峡市| 巴林右旗| 衡山县| 明光市| 汕尾市| 潞西市| 格尔木市| 中西区| 彩票| 湛江市| 利辛县|