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

Javabean和map相互轉(zhuǎn)化方法代碼示例

 更新時(shí)間:2021年01月07日 10:36:04   作者:chenxuejiakaren  
這篇文章主要介紹了Javabean和map相互轉(zhuǎn)化方法示例,介紹了其通用方法代碼,需要的朋友可以參考下。

在做導(dǎo)入的時(shí)候,遇到了需要將map對(duì)象轉(zhuǎn)化 成javabean的問(wèn)題,也就是說(shuō),不清楚javabean的內(nèi)部字段排列,只知道m(xù)ap的 key代表javabean的字段名,value代表值。

那現(xiàn)在就需要用轉(zhuǎn)化工具了。是通用的哦!

首先來(lái)看 JavaBean 轉(zhuǎn)化成Map的方法:

/**
  * 將一個(gè) JavaBean 對(duì)象轉(zhuǎn)化為一個(gè) Map
  * @param bean 要轉(zhuǎn)化的JavaBean 對(duì)象
  * @return 轉(zhuǎn)化出來(lái)的 Map 對(duì)象
  * @throws IntrospectionException 如果分析類(lèi)屬性失敗
  * @throws IllegalAccessException 如果實(shí)例化 JavaBean 失敗
  * @throws InvocationTargetException 如果調(diào)用屬性的 setter 方法失敗
  */ 
 @SuppressWarnings({ "rawtypes", "unchecked" }) 
 public static Map convertBean(Object bean) 
   throws IntrospectionException, IllegalAccessException, InvocationTargetException { 
  Class type = bean.getClass(); 
  Map returnMap = new HashMap(); 
  BeanInfo beanInfo = Introspector.getBeanInfo(type); 
  PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); 
  for (int i = 0; i< propertyDescriptors.length; i++) { 
   PropertyDescriptor descriptor = propertyDescriptors[i]; 
   String propertyName = descriptor.getName(); 
   if (!propertyName.equals("class")) { 
    Method readMethod = descriptor.getReadMethod(); 
    Object result = readMethod.invoke(bean, new Object[0]); 
    if (result != null) { 
     returnMap.put(propertyName, result); 
    } else { 
     returnMap.put(propertyName, ""); 
    } 
   } 
  } 
  return returnMap; 
 } 

下面是將Map轉(zhuǎn)化成JavaBean對(duì)象的方法:

/**
  * 將一個(gè) Map 對(duì)象轉(zhuǎn)化為一個(gè) JavaBean
  * @param type 要轉(zhuǎn)化的類(lèi)型
  * @param map 包含屬性值的 map
  * @return 轉(zhuǎn)化出來(lái)的 JavaBean 對(duì)象
  * @throws IntrospectionException 如果分析類(lèi)屬性失敗
  * @throws IllegalAccessException 如果實(shí)例化 JavaBean 失敗
  * @throws InstantiationException 如果實(shí)例化 JavaBean 失敗
  * @throws InvocationTargetException 如果調(diào)用屬性的 setter 方法失敗
  */ 
 @SuppressWarnings("rawtypes") 
 public static Object convertMap(Class type, Map map) 
   throws IntrospectionException, IllegalAccessException, 
   InstantiationException, InvocationTargetException { 
  BeanInfo beanInfo = Introspector.getBeanInfo(type); // 獲取類(lèi)屬性 
  Object obj = type.newInstance(); // 創(chuàng)建 JavaBean 對(duì)象 
  // 給 JavaBean 對(duì)象的屬性賦值 
  PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); 
  for (int i = 0; i< propertyDescriptors.length; i++) { 
   PropertyDescriptor descriptor = propertyDescriptors[i]; 
   String propertyName = descriptor.getName(); 
 
   if (map.containsKey(propertyName)) { 
    // 下面一句可以 try 起來(lái),這樣當(dāng)一個(gè)屬性賦值失敗的時(shí)候就不會(huì)影響其他屬性賦值。 
    Object value = map.get(propertyName); 
 
    Object[] args = new Object[1]; 
    args[0] = value; 
 
    descriptor.getWriteMethod().invoke(obj, args); 
   } 
  } 
  return obj; 
 } 

以上內(nèi)容我測(cè)試過(guò),是沒(méi)有問(wèn)題的,供大家參考學(xué)習(xí)。感謝大家對(duì)本站的支持。

相關(guān)文章

  • 一篇文章帶你深入了解Java基礎(chǔ)(3)

    一篇文章帶你深入了解Java基礎(chǔ)(3)

    這篇文章主要給大家介紹了關(guān)于Java中方法使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • spring配置不掃描service層的原因解答

    spring配置不掃描service層的原因解答

    這篇文章主要介紹了spring配置不掃描service層的原因解答,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • JAVA下單接口優(yōu)化實(shí)戰(zhàn)TPS性能提高10倍

    JAVA下單接口優(yōu)化實(shí)戰(zhàn)TPS性能提高10倍

    今天小編就為大家分享一篇關(guān)于JAVA下單接口優(yōu)化實(shí)戰(zhàn)TPS性能提高10倍,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • @RequestAttribute和@RequestParam注解的區(qū)別及說(shuō)明

    @RequestAttribute和@RequestParam注解的區(qū)別及說(shuō)明

    這篇文章主要介紹了@RequestAttribute和@RequestParam注解的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java程序生成Access文件代碼實(shí)例

    Java程序生成Access文件代碼實(shí)例

    這篇文章主要介紹了Java程序生成Access文件代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Java?int類(lèi)型如何獲取高低位

    Java?int類(lèi)型如何獲取高低位

    這篇文章主要介紹了Java?int類(lèi)型如何獲取高低位,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • FP-Growth算法的Java實(shí)現(xiàn)+具體實(shí)現(xiàn)思路+代碼

    FP-Growth算法的Java實(shí)現(xiàn)+具體實(shí)現(xiàn)思路+代碼

    FP-Growth算法比Apriori算法快很多(但是卻比不上時(shí)間,how time slipped away)。在網(wǎng)上搜索后發(fā)現(xiàn)Java實(shí)現(xiàn)的FP-Growth算法很少,且大多數(shù)不太能理解):太菜。所以就自己實(shí)現(xiàn)了一下。這篇文章重點(diǎn)介紹一下我的Java實(shí)現(xiàn)
    2021-06-06
  • Spring Bean Scope 有狀態(tài)的Bean與無(wú)狀態(tài)的Bean

    Spring Bean Scope 有狀態(tài)的Bean與無(wú)狀態(tài)的Bean

    這篇文章主要介紹了Spring Bean Scope 有狀態(tài)的Bean與無(wú)狀態(tài)的Bean,每個(gè)用戶(hù)有自己特有的一個(gè)實(shí)例,在用戶(hù)的生存期內(nèi),bean保持了用戶(hù)的信息,下面來(lái)了解有狀態(tài)和無(wú)狀態(tài)的區(qū)別吧
    2022-01-01
  • java el簡(jiǎn)介及用法

    java el簡(jiǎn)介及用法

    EL簡(jiǎn)介語(yǔ)法結(jié)構(gòu) 運(yùn)算符等資料代碼。
    2009-04-04
  • IDEA打包maven多模塊相互依賴(lài)項(xiàng)目全過(guò)程

    IDEA打包maven多模塊相互依賴(lài)項(xiàng)目全過(guò)程

    這篇文章主要介紹了IDEA打包maven多模塊相互依賴(lài)項(xiàng)目全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評(píng)論

宝山区| 武义县| 天长市| 西乌| 米林县| 双城市| 中方县| 老河口市| 阆中市| 临洮县| 大理市| 恩施市| 道孚县| 陵川县| 呈贡县| 星子县| 洪湖市| 翼城县| 寿光市| 舟山市| 阳东县| 灵宝市| 淳化县| 娄烦县| 克东县| 清新县| 揭东县| 巫溪县| 和平县| 嘉义县| 霞浦县| 自治县| 政和县| 峡江县| 铜鼓县| 沅江市| 虹口区| 五原县| 道真| 大余县| 济南市|