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

java如何將map數(shù)據(jù)存入到實(shí)體類對(duì)象中

 更新時(shí)間:2024年09月23日 09:29:53   作者:??悲宸???  
在Java編程中,經(jīng)常需要將Map集合中的數(shù)據(jù)轉(zhuǎn)換為實(shí)體類對(duì)象,這可以通過反射機(jī)制實(shí)現(xiàn),即通過遍歷Map對(duì)象,使用反射根據(jù)鍵名對(duì)應(yīng)實(shí)體類的屬性名,動(dòng)態(tài)調(diào)用setter方法將值設(shè)置到實(shí)體對(duì)象中,這樣的操作使得數(shù)據(jù)從Map結(jié)構(gòu)轉(zhuǎn)移到了具體的JavaBean中,便于后續(xù)的操作和管理

將map數(shù)據(jù)存入到實(shí)體類對(duì)象中

實(shí)體類代碼

(這里我們創(chuàng)建的User實(shí)體類)

public class User {
    //實(shí)體類屬性
    private String name;
    private String psw;
    private String email;
    private String tel;
    //1,toString方法
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", psw='" + psw + '\'' +
                ", email='" + email + '\'' +
                ", tel='" + tel + '\'' +
                '}';
    }
    //2,構(gòu)造方法(無參構(gòu)造,有參構(gòu)造)
    public User() {
    }

    public User(String name, String psw, String email, String tel) {
        this.name = name;
        this.psw = psw;
        this.email = email;
        this.tel = tel;
    }
    //3,getter  setter方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPsw() {
        return psw;
    }

    public void setPsw(String psw) {
        this.psw = psw;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }
}

測(cè)試類代碼

 @Test	//這里我用的是單元測(cè)試方法,比較方便
    public void test1(){
        HashMap<String, Object> map = new HashMap<>();
        map.put("name","貂蟬");
        map.put("psw","666");
        map.put("email","123456789@qq.com");
        map.put("tel","123456789");

        //調(diào)用方法
        User user = mapToBean(map, User.class);
        System.out.println(user);
    }
    //將map中的鍵值對(duì),封裝進(jìn)實(shí)體對(duì)象屬性中
    public <T> T mapToBean( HashMap<String, Object> map,Class<T> c){
        //  <T> T     這里不確定返回值類型,寫一個(gè)泛型類型,作為返回值

        //  HashMap<String, Object> map,Class<T> c
        //  這里在方法中傳兩個(gè)參數(shù),一個(gè)是map集合,另一個(gè)是實(shí)體類,
        //  但是實(shí)體類不確定,會(huì)一直變動(dòng),所以傳遞一個(gè)Class類作為參數(shù)類型,可以拿到所有的實(shí)體類

        try {
            T t = c.newInstance();      //拿到實(shí)體類對(duì)象
            //1,拆開map,給對(duì)象t的屬性賦值
            Set<Map.Entry<String, Object>> entries = map.entrySet();
            for (Map.Entry<String, Object> entry : entries) {
                Field f = c.getDeclaredField(entry.getKey());
                f.setAccessible(true);  //設(shè)置修改權(quán)限,因?yàn)槲覀儾捎玫姆庋bprivate,不修改權(quán)限的話,就不能修改實(shí)體類中的屬性值
                f.set(t,entry.getValue());  //傳遞參數(shù),第一個(gè)為實(shí)體類對(duì)象,第二個(gè)為map集合中的value值
            }
            //2,構(gòu)建一個(gè)實(shí)體對(duì)象并返回
            return t;
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("出錯(cuò)啦!"); //將異常放大,可不用寫返回值
        }
    }

運(yùn)行效果

如果你創(chuàng)建的不是User實(shí)體類,將下面代碼改成你的實(shí)體類,map集合中的數(shù)據(jù)改成你想要的數(shù)據(jù),就可以了

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Springboot導(dǎo)出文件,前端下載文件方式

    Springboot導(dǎo)出文件,前端下載文件方式

    這篇文章主要介紹了Springboot導(dǎo)出文件,前端下載文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java后臺(tái)返回blob格式的文件流的解決方案

    Java后臺(tái)返回blob格式的文件流的解決方案

    在Java后臺(tái)開發(fā)中,經(jīng)常會(huì)遇到需要返回Blob格式的文件流給前端的情況,Blob是一種二進(jìn)制大對(duì)象類型,可以用于存儲(chǔ)大量的二進(jìn)制數(shù)據(jù),例如圖片、音頻、視頻等,本文將為你詳細(xì)介紹如何在Java后臺(tái)中返回Blob格式的文件流,需要的朋友可以參考下
    2024-08-08
  • Java實(shí)現(xiàn)撲克牌程序

    Java實(shí)現(xiàn)撲克牌程序

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)撲克牌程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • application.yml和bootstrap.yml不生效的3種解決方案

    application.yml和bootstrap.yml不生效的3種解決方案

    SpringBoot默認(rèn)支持?properties(.properties) 和 YAML(.yml .yaml ) 配置文件,本文主要介紹了application.yml和bootstrap.yml不生效的3種解決方案,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Spring MVC全局異常實(shí)例詳解

    Spring MVC全局異常實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于Spring MVC全局異常的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-02-02
  • 小議Java中final關(guān)鍵字使用時(shí)的注意點(diǎn)

    小議Java中final關(guān)鍵字使用時(shí)的注意點(diǎn)

    final關(guān)鍵字代表著最后、不可改變,無論是在用final修飾類、修飾方法還是修飾變量時(shí),都要注意內(nèi)存分配的問題.這里來小議Java中final關(guān)鍵字使用時(shí)的注意點(diǎn):
    2016-06-06
  • 淺談JDK14性能管理工具之jmap和jhat

    淺談JDK14性能管理工具之jmap和jhat

    我們?cè)趯懘a的過程中,經(jīng)常會(huì)遇到內(nèi)存泄露的問題,比如某個(gè)集合中的對(duì)象沒有被回收,或者內(nèi)存出現(xiàn)不明原因的增長。這些都是需要我們來定位的問題,我們可以使用jmap和jhat來對(duì)java程序中的內(nèi)存對(duì)象進(jìn)行分析。
    2021-06-06
  • SpringCloud集成zookeeper實(shí)現(xiàn)服務(wù)注冊(cè)并訪問功能

    SpringCloud集成zookeeper實(shí)現(xiàn)服務(wù)注冊(cè)并訪問功能

    zookeeper和eureka一樣,是用于充當(dāng)服務(wù)注冊(cè)功能服務(wù)器的一個(gè)springcloud插件,這篇文章主要介紹了SpringCloud集成zookeeper實(shí)現(xiàn)服務(wù)注冊(cè)并訪問,需要的朋友可以參考下
    2022-06-06
  • Java scala模式匹配機(jī)制詳解

    Java scala模式匹配機(jī)制詳解

    模式匹配語法中,采用match關(guān)鍵字聲明,每個(gè)分支采用case關(guān)鍵字進(jìn)行聲明,當(dāng)需要匹配時(shí),會(huì)從第一個(gè)case分支開始,如果匹配成功,那么執(zhí)行對(duì)應(yīng)的邏輯代碼,如果匹配不成功,繼續(xù)執(zhí)行下一個(gè)分支進(jìn)行判斷
    2023-02-02
  • java仿Servlet生成驗(yàn)證碼實(shí)例詳解

    java仿Servlet生成驗(yàn)證碼實(shí)例詳解

    這篇文章主要介紹了java仿Servlet生成驗(yàn)證碼實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04

最新評(píng)論

商南县| 什邡市| 梁山县| 灵寿县| 汕头市| 湄潭县| 陆丰市| 高台县| 辽中县| 大兴区| 财经| 星座| 锦屏县| 自治县| 新田县| 高青县| 靖边县| 黄浦区| 元阳县| 内乡县| 富裕县| 舒城县| 宜川县| 花莲市| 庐江县| 永靖县| 蓬莱市| 日土县| 尚义县| 赤峰市| 融水| 玉屏| 台中市| 陇南市| 蒙自县| 夏河县| 陆川县| 桂东县| 赞皇县| 嘉黎县| 张北县|