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

Java基礎(chǔ)將Bean屬性值放入Map中的實(shí)例

 更新時(shí)間:2017年07月03日 11:00:02   投稿:lqh  
這篇文章主要介紹了Java基礎(chǔ)將Bean屬性值放入Map中的實(shí)例的相關(guān)資料,需要的朋友可以參考下

Java基礎(chǔ)將Bean屬性值放入Map中的實(shí)例

利用發(fā)射將Java對(duì)象的屬性值以屬性名稱為鍵,存儲(chǔ)到Map中的簡單實(shí)現(xiàn)。包括自身屬性及從父類繼承得到的屬性。Java類型的getField[s]方法只能獲取public 類型的屬性,getDeclaredFields則能獲取所有聲明的屬性,同時(shí),如果類的可見性非公有,則Field的get(Object)方法將取不到具體的屬性值。

package com.wood.util; 
 
import java.lang.reflect.Field; 
import java.util.HashMap; 
import java.util.Map; 
 
/** 
*  
* @ClassName: BeanToMapUtils 
* @Description: TODO 
* @author  wood 
* @date   2014-10-31 下午09:52:41 
* 
 */ 
public class BeanToMapUtils { 
  /** 
   * getFileds獲取所有public 屬性<br/> 
   * getDeclaredFields 獲取所有聲明的屬性<br/> 
   * @param bean 
   * @return 將某個(gè)類及其繼承屬性全部添加到Map中 
   */ 
  public static Map<String,Object> beanToMap(Object bean){ 
    Map<String,Object> result = new HashMap<String,Object>(); 
    if(bean==null){ 
      return result; 
    } 
     
    Field[] fields = bean.getClass().getDeclaredFields(); 
    if(fields==null||fields.length==0){ 
      return result; 
    } 
     
    for(Field field:fields){ 
      //重置屬性可見(而且一般屬性都是私有的),否則操作無效 
      boolean accessible = field.isAccessible(); 
      if(!accessible){ 
        field.setAccessible(true); 
      } 
       
      //獲取屬性名稱及值存入Map 
      String key = field.getName(); 
      try { 
        result.put(key, field.get(bean)); 
      } catch (IllegalArgumentException e) { 
        e.printStackTrace(); 
      } catch (IllegalAccessException e) { 
        e.printStackTrace(); 
      } 
       
      //還原屬性標(biāo)識(shí) 
      field.setAccessible(accessible); 
    } 
     
    //獲取父類屬性 
    fields = bean.getClass().getSuperclass().getDeclaredFields(); 
    if(fields==null||fields.length==0){ 
      return result; 
    } 
     
    for(Field field:fields){ 
      //重置屬性可見(而且一般屬性都是私有的),否則操作無效 
      boolean accessible = field.isAccessible(); 
      if(!accessible){ 
        field.setAccessible(true); 
      } 
       
      //獲取屬性名稱及值存入Map 
      String key = field.getName(); 
      try { 
        result.put(key, field.get(bean)); 
      } catch (IllegalArgumentException e) { 
        e.printStackTrace(); 
      } catch (IllegalAccessException e) { 
        e.printStackTrace(); 
      } 
       
      //還原屬性標(biāo)識(shí) 
      field.setAccessible(accessible); 
    } 
     
    return result; 
  } 
   
  public static void main(String[] args) { 
    Dog info = new Dog(); 
    info.setCountry("cc"); 
    info.setName("Dog"); 
     
    info.setCategory("gram"); 
    info.setOwner("wang"); 
     
    System.out.println(beanToMap(info)); 
  } 
} 

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • redis實(shí)現(xiàn)隊(duì)列的阻塞、延時(shí)、發(fā)布和訂閱

    redis實(shí)現(xiàn)隊(duì)列的阻塞、延時(shí)、發(fā)布和訂閱

    本文主要介紹了redis實(shí)現(xiàn)隊(duì)列的阻塞、延時(shí)、發(fā)布和訂閱,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • mybatis-plus讀取JSON類型的方法實(shí)現(xiàn)

    mybatis-plus讀取JSON類型的方法實(shí)現(xiàn)

    這篇文章主要介紹了mybatis-plus讀取JSON類型的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java使用JCommander實(shí)現(xiàn)解析命令行參數(shù)

    Java使用JCommander實(shí)現(xiàn)解析命令行參數(shù)

    jcommander?是一個(gè)只有幾十?kb?的?Java?命令行參數(shù)解析工具,可以通過注解的方式快速實(shí)現(xiàn)命令行參數(shù)解析,本文就來和大家介紹一下JCommander是如何解析命令行參數(shù)吧
    2023-06-06
  • @MapperScan和@ComponentScan一塊使用導(dǎo)致沖突的解決

    @MapperScan和@ComponentScan一塊使用導(dǎo)致沖突的解決

    這篇文章主要介紹了@MapperScan和@ComponentScan一塊使用導(dǎo)致沖突的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java web開發(fā)中大量數(shù)據(jù)導(dǎo)出Excel超時(shí)(504)問題解決

    java web開發(fā)中大量數(shù)據(jù)導(dǎo)出Excel超時(shí)(504)問題解決

    開發(fā)測試時(shí)候?qū)霐?shù)據(jù)遇到大數(shù)據(jù)導(dǎo)入的問題,整理了下,需要的朋友可以參考下
    2017-04-04
  • spring中ApplicationListener的使用小結(jié)

    spring中ApplicationListener的使用小結(jié)

    ApplicationListener是spring提供的一個(gè)監(jiān)聽器,本文主要介紹了spring中ApplicationListener的使用小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • Spring-MVC異步請求之Servlet異步處理

    Spring-MVC異步請求之Servlet異步處理

    這篇文章主要介紹了Spring-MVC異步請求之Servlet異步處理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Spring Boot Test詳解

    Spring Boot Test詳解

    Spring Test與JUnit等其他測試框架結(jié)合起來,提供了便捷高效的測試手段,而Spring Boot Test 是在Spring Test之上的再次封裝,增加了切片測試,增強(qiáng)了mock能力,這篇文章主要介紹了Spring Boot Test介紹,需要的朋友可以參考下
    2024-02-02
  • Java基于final修飾數(shù)據(jù)過程解析

    Java基于final修飾數(shù)據(jù)過程解析

    這篇文章主要介紹了Java基于final修飾數(shù)據(jù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • spring boot jpa寫原生sql報(bào)Cannot resolve table錯(cuò)誤解決方法

    spring boot jpa寫原生sql報(bào)Cannot resolve table錯(cuò)誤解決方法

    在本篇文章里小編給大家整理的是關(guān)于spring boot jpa寫原生sql報(bào)Cannot resolve table錯(cuò)誤的解決方法,需要的朋友學(xué)習(xí)下。
    2019-11-11

最新評(píng)論

通渭县| 石渠县| 肥东县| 衡山县| 陆良县| 阳西县| 铜陵市| 乐清市| 宣武区| 临猗县| 四平市| 拜城县| 英吉沙县| 扶沟县| 江山市| 松桃| 陇西县| 大田县| 祁连县| 甘泉县| 习水县| 绩溪县| 易门县| 嫩江县| 桂东县| 海原县| 呼和浩特市| 安陆市| 达拉特旗| 新安县| 临西县| 改则县| 荣成市| 武隆县| 井陉县| 龙山县| 孝义市| 呼伦贝尔市| 阿拉善左旗| 陆良县| 塔城市|