国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Java > 正文

JavaBean和Map轉(zhuǎn)換封裝類的方法

2019-11-26 13:43:35
字體:
供稿:網(wǎng)友

實(shí)例如下:

package com.ljq.util;import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * Map工具類 * * @author jqlin */public class MapUtils {  /**   * 從map集合中獲取屬性值   *    * @param <E>   * @param map   *      map集合   * @param key   *      鍵對(duì)   * @param defaultValue   *      默認(rèn)值   * @return   * @author jiqinlin   */  @SuppressWarnings({ "unchecked", "rawtypes" })  public final static <E> E get(Map map, Object key, E defaultValue) {    Object o = map.get(key);    if (o == null)      return defaultValue;    return (E) o;  }    /**   * Map集合對(duì)象轉(zhuǎn)化成 JavaBean集合對(duì)象   *    * @param javaBean JavaBean實(shí)例對(duì)象   * @param mapList Map數(shù)據(jù)集對(duì)象   * @return   * @author jqlin   */  @SuppressWarnings({ "rawtypes" })  public static <T> List<T> map2Java(T javaBean, List<Map> mapList) {    if(mapList == null || mapList.isEmpty()){      return null;    }    List<T> objectList = new ArrayList<T>();        T object = null;    for(Map map : mapList){      if(map != null){        object = map2Java(javaBean, map);        objectList.add(object);      }    }        return objectList;      }    /**   * Map對(duì)象轉(zhuǎn)化成 JavaBean對(duì)象   *    * @param javaBean JavaBean實(shí)例對(duì)象   * @param map Map對(duì)象   * @return   * @author jqlin   */  @SuppressWarnings({ "rawtypes","unchecked", "hiding" })  public static <T> T map2Java(T javaBean, Map map) {    try {      // 獲取javaBean屬性      BeanInfo beanInfo = Introspector.getBeanInfo(javaBean.getClass());      // 創(chuàng)建 JavaBean 對(duì)象      Object obj = javaBean.getClass().newInstance();      PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();      if (propertyDescriptors != null && propertyDescriptors.length > 0) {        String propertyName = null; // javaBean屬性名        Object propertyValue = null; // javaBean屬性值        for (PropertyDescriptor pd : propertyDescriptors) {          propertyName = pd.getName();          if (map.containsKey(propertyName)) {            propertyValue = map.get(propertyName);            pd.getWriteMethod().invoke(obj, new Object[] { propertyValue });          }        }        return (T) obj;      }    } catch (Exception e) {      e.printStackTrace();    }    return null;  }  /**   * JavaBean對(duì)象轉(zhuǎn)化成Map對(duì)象   *    * @param javaBean   * @return   * @author jqlin   */  @SuppressWarnings({ "rawtypes", "unchecked" })  public static Map java2Map(Object javaBean) {    Map map = new HashMap();         try {      // 獲取javaBean屬性      BeanInfo beanInfo = Introspector.getBeanInfo(javaBean.getClass());      PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();      if (propertyDescriptors != null && propertyDescriptors.length > 0) {        String propertyName = null; // javaBean屬性名        Object propertyValue = null; // javaBean屬性值        for (PropertyDescriptor pd : propertyDescriptors) {          propertyName = pd.getName();          if (!propertyName.equals("class")) {            Method readMethod = pd.getReadMethod();            propertyValue = readMethod.invoke(javaBean, new Object[0]);            map.put(propertyName, propertyValue);          }        }      }          } catch (Exception e) {      e.printStackTrace();    }         return map;  } }

以上就是小編為大家?guī)淼腏avaBean和Map轉(zhuǎn)換封裝類的方法全部?jī)?nèi)容了,希望大家多多支持武林網(wǎng)~

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 山阴县| 长宁县| 安康市| 许昌县| 都安| 禹州市| 长沙县| 繁峙县| 宁陵县| 汶上县| 许昌县| 霍林郭勒市| 龙胜| 尼木县| 黑水县| 铜川市| 盘山县| 芮城县| 冷水江市| 邵武市| 龙门县| 永春县| 黑水县| 武山县| 潍坊市| 松滋市| 永平县| 武乡县| 通辽市| 衡阳市| 天峨县| 河北省| 安康市| 兰西县| 鄂伦春自治旗| 拉萨市| 德州市| 台中县| 进贤县| 建始县| 奉节县|