使用(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
浙公网安备 33010602011771号