首页 > 编程 > Java > 正文

JavaBean和Map转换封装类的方法

2019-11-26 13:43:35
字体:
来源:转载
供稿:网友

实例如下:

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   *      键对   * @param defaultValue   *      默认值   * @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集合对象转化成 JavaBean集合对象   *    * @param javaBean JavaBean实例对象   * @param mapList Map数据集对象   * @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对象转化成 JavaBean对象   *    * @param javaBean JavaBean实例对象   * @param map Map对象   * @return   * @author jqlin   */  @SuppressWarnings({ "rawtypes","unchecked", "hiding" })  public static <T> T map2Java(T javaBean, Map map) {    try {      // 获取javaBean属性      BeanInfo beanInfo = Introspector.getBeanInfo(javaBean.getClass());      // 创建 JavaBean 对象      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对象转化成Map对象   *    * @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;  } }

以上就是小编为大家带来的JavaBean和Map转换封装类的方法全部内容了,希望大家多多支持武林网~

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表