java如何將map數(shù)據(jù)存入到實體類對象中
將map數(shù)據(jù)存入到實體類對象中
實體類代碼
(這里我們創(chuàng)建的User實體類)
public class User { //實體類屬性 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; } }
測試類代碼
@Test //這里我用的是單元測試方法,比較方便 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中的鍵值對,封裝進(jìn)實體對象屬性中 public <T> T mapToBean( HashMap<String, Object> map,Class<T> c){ // <T> T 這里不確定返回值類型,寫一個泛型類型,作為返回值 // HashMap<String, Object> map,Class<T> c // 這里在方法中傳兩個參數(shù),一個是map集合,另一個是實體類, // 但是實體類不確定,會一直變動,所以傳遞一個Class類作為參數(shù)類型,可以拿到所有的實體類 try { T t = c.newInstance(); //拿到實體類對象 //1,拆開map,給對象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)限,因為我們采用的封裝private,不修改權(quán)限的話,就不能修改實體類中的屬性值 f.set(t,entry.getValue()); //傳遞參數(shù),第一個為實體類對象,第二個為map集合中的value值 } //2,構(gòu)建一個實體對象并返回 return t; } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("出錯啦!"); //將異常放大,可不用寫返回值 } }
運(yùn)行效果
如果你創(chuàng)建的不是User實體類,將下面代碼改成你的實體類,map集合中的數(shù)據(jù)改成你想要的數(shù)據(jù),就可以了
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot使用JdbcTemplate完成對數(shù)據(jù)庫的增刪改查功能
這篇文章主要介紹了springboot使用JdbcTemplate完成對數(shù)據(jù)庫的增刪改查功能,需要的朋友可以參考下2017-12-12創(chuàng)建并運(yùn)行一個java線程方法介紹
這篇文章主要介紹了創(chuàng)建并運(yùn)行一個java線程,涉及線程代碼示例,具有一定參考價值,需要的朋友可以了解下。2017-11-11Spring通過c3p0配置bean連接數(shù)據(jù)庫
這篇文章主要為大家詳細(xì)介紹了Spring通過c3p0配置bean連接數(shù)據(jù)庫,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08Apache?Hudi異步Clustering部署操作的掌握
這篇文章主要介紹了Apache?Hudi異步Clustering部署操作的掌握,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-03-03使用Maven將springboot工程打包成docker鏡像
這篇文章主要介紹了使用Maven將springboot工程打包成docker鏡像,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12SpringBoot中使用HTTP客戶端工具Retrofit
這篇文章主要為大家介紹了SpringBoot中使用HTTP客戶端工具Retrofit方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Java下變量大小寫駝峰、大小寫下劃線、大小寫連線轉(zhuǎn)換
有時候需要處理對象屬性的getter、setter方法,或者將屬性與數(shù)據(jù)表字段進(jìn)行相互轉(zhuǎn)換,感興趣的可以了解一下2021-06-06SpringBoot通過整合Dubbo解決@Reference注解問題
這篇文章主要介紹了SpringBoot通過整合Dubbo解決@Reference注解問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03Mybatis-Plus最優(yōu)化持久層開發(fā)過程
Mybatis-plus(簡稱MP)是一個Mybatis的增強(qiáng)工具,在mybatis的基礎(chǔ)上只做增強(qiáng)不做改變,提高效率,自動生成單表的CRUD功能,這篇文章主要介紹了Mybatis-Plus最優(yōu)化持久層開發(fā),需要的朋友可以參考下2024-07-07