packagecom.ljq.util;importjava.beans.BeanInfo;importjava.beans.Introspector;importjava.beans.PropertyDescriptor;importjava.lang.reflect.Method;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;/*** Map工具类
*
*@authorjqlin*/
public classMapUtils {/*** 从map集合中获取属性值
*
*@param
*@parammap
* map集合
*@paramkey
* 键对
*@paramdefaultValue
* 默认值
*@return*@authorjiqinlin*/@SuppressWarnings({"unchecked", "rawtypes"})public final static E get(Map map, Object key, E defaultValue) {
Object o=map.get(key);if (o == null)returndefaultValue;return(E) o;
}/*** Map集合对象转化成 JavaBean集合对象
*
*@paramjavaBean JavaBean实例对象
*@parammapList Map数据集对象
*@return*@authorjqlin*/@SuppressWarnings({"rawtypes"})public static List map2Java(T javaBean, ListmapList) {if(mapList == null ||mapList.isEmpty()){return null;
}
List objectList = new ArrayList();
T object= null;for(Map map : mapList){if(map != null){
object=map2Java(javaBean, map);
objectList.add(object);
}
}returnobjectList;
}/*** Map对象转化成 JavaBean对象
*
*@paramjavaBean JavaBean实例对象
*@parammap Map对象
*@return*@authorjqlin*/@SuppressWarnings({"rawtypes","unchecked", "hiding"})public static 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,newObject[] { propertyValue });
}
}return(T) obj;
}
}catch(Exception e) {
e.printStackTrace();
}return null;
}/*** JavaBean对象转化成Map对象
*
*@paramjavaBean
*@return*@authorjqlin*/@SuppressWarnings({"rawtypes", "unchecked"})public staticMap java2Map(Object javaBean) {
Map map= newHashMap();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();
}returnmap;
}
}