使用(BeanUtils工具包)将JavaBean 对象和Map相互转换
public class ReflectBean { /** * 将一个 JavaBean 对象转化为一个 Map * @param bean 要转化的JavaBean 对象 * @return 转化出来的 Map 对象 */ public static Map<String, String> beanConvertMap(Object bean){ Class<? extends Object> cls = bean.getClass(); Map<String, String> returnMap = new HashMap<String, String>(); Field[] fields = cls.getDeclaredFields(); for(int i = 0 ; i < fields.length ; i++) { PropertyDescriptor descriptor=BeanUtils.getPropertyDescriptor(cls, fields[i].getName()); Method readMethod = descriptor.getReadMethod(); try { String result = readMethod.invoke(bean, new Object[0])==null?"": readMethod.invoke(bean, new Object[0]).toString(); if (!"".equals(result) && result != null) { returnMap.put(fields[i].getName(), result); } } catch (IllegalArgumentException e1) { e1.printStackTrace(); } catch (IllegalAccessException e1) { e1.printStackTrace(); } catch (InvocationTargetException e1) { e1.printStackTrace(); } } return returnMap; } /** * 将一个 Map 对象转化为一个 JavaBean * @param obj 要转化的对象 * @param map 包含属性值的 map * @return 转化出来的 JavaBean 对象 */ public static Object mapConvertBean(Map<String, String> maps,Object obj){ Class cls=obj.getClass(); Field[] fields = cls.getDeclaredFields(); for (int i = 0; i < fields.length; i++) { if (maps.containsKey(fields[i].getName())) { Object values = maps.get(fields[i].getName()); Object[] argss = new Object[1]; argss[0] = (String) values; PropertyDescriptor descriptor=BeanUtils.getPropertyDescriptor(cls, fields[i].getName()); try { descriptor.getWriteMethod().invoke(obj, values); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } } return obj; } /** * 将List结果集转换为Map * @param list * @return */ public static Map<String, String> listCoverMap(List<Param> list){ Map<String,String> map=new HashMap<String,String>(); for (int i = 0; i <list.size(); i++) { map.put(list.get(i).getName(),(list.get(i)).getValue()); } return map; }
BeanUtils工具包是由Apache公司所开发,主要是方便程序员对Bean类能够进行简便的操作。
commons-beanutils-1.8.3.jar