激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

香港云服务器
服務器之家 - 編程語言 - Java教程 - Javabean和map相互轉化方法代碼示例

Javabean和map相互轉化方法代碼示例

2021-01-01 12:54chenxuejiakaren Java教程

這篇文章主要介紹了Javabean和map相互轉化方法示例,介紹了其通用方法代碼,需要的朋友可以參考下。

在做導入的時候,遇到了需要將map對象轉化 成javabean的問題,也就是說,不清楚javabean的內部字段排列,只知道map的 key代表javabean的字段名,value代表值。

那現在就需要用轉化工具了。是通用的哦!

首先來看 JavaBean 轉化成Map的方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[java]
/**
   * 將一個 JavaBean 對象轉化為一個 Map
   * @param bean 要轉化的JavaBean 對象
   * @return 轉化出來的 Map 對象
   * @throws IntrospectionException 如果分析類屬性失敗
   * @throws IllegalAccessException 如果實例化 JavaBean 失敗
   * @throws InvocationTargetException 如果調用屬性的 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轉化成JavaBean對象的方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[java]
/**
   * 將一個 Map 對象轉化為一個 JavaBean
   * @param type 要轉化的類型
   * @param map 包含屬性值的 map
   * @return 轉化出來的 JavaBean 對象
   * @throws IntrospectionException 如果分析類屬性失敗
   * @throws IllegalAccessException 如果實例化 JavaBean 失敗
   * @throws InstantiationException 如果實例化 JavaBean 失敗
   * @throws InvocationTargetException 如果調用屬性的 setter 方法失敗
   */
  @SuppressWarnings("rawtypes")
  public static Object convertMap(Class type, Map map)
      throws IntrospectionException, IllegalAccessException,
      InstantiationException, InvocationTargetException {
    BeanInfo beanInfo = Introspector.getBeanInfo(type); // 獲取類屬性
    Object obj = type.newInstance(); // 創建 JavaBean 對象
    // 給 JavaBean 對象的屬性賦值
    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 起來,這樣當一個屬性賦值失敗的時候就不會影響其他屬性賦值。
        Object value = map.get(propertyName);
 
        Object[] args = new Object[1];
        args[0] = value;
 
        descriptor.getWriteMethod().invoke(obj, args);
      }
    }
    return obj;
  }

 

以上內容我測試過,是沒有問題的,供大家參考學習。感謝大家對本站的支持。

原文鏈接:https://www.2cto.com/kf/201207/141981.html

延伸 · 閱讀

精彩推薦
1188
主站蜘蛛池模板: 成人免费毛片在线观看 | 黄色片免费看看 | 欧美一区2区三区4区公司二百 | 天天草天天干天天射 | 黄色小视频免费在线观看 | 亚洲午夜天堂吃瓜在线 | 在线播放免费视频 | www.成人在线视频 | 亚洲精品一区中文字幕 | 老司机一级毛片 | 久久男人 | 91不雅视频 | 国产精品爱久久久久久久 | 三人弄娇妻高潮3p视频 | 国产呻吟 | 欧美黄色片免费看 | 理论片中文字幕 | 免费毛片观看 | 久久精品视频7 | 成人性视频免费网站下载软件 | 久久超 | av在线免费播放 | 九九福利视频 | 黄色小视频免费在线观看 | 精品一区二区久久久久久按摩 | 欧美亚洲国产日韩 | 本站只有精品 | 国产精品午夜在线观看 | 视频一区二区中文字幕 | 欧美日韩亚洲不卡 | 中国女警察一级毛片视频 | 91视频完整版 | 狠狠操人人干 | 久久久久二区 | 在线影院av | www久久艹 | www日韩大片| 青青草成人免费视频在线 | 久久综合九色 | 久久久久久三区 | 91 久久|