这个在项目里有时候很有用,map2bean和bean2map, 也有时候会用到json,也可以用gson的工具.
package com.newnewbank.utils.bean;
import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.log4j.Logger;
public class BeanMapConvertUtil {
private static Logger logger = Logger.getLogger(BeanMapConvertUtil.class);
public static Map<String, Object> beanToMap(Object bean){
if(bean == null){
return null;
}
Map<String, Object> map = new HashMap<String, Object>();
try {
BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
String key = property.getName();
// 过滤class属性
if (!key.equals("class")) {
// 得到property对应的getter方法
Method getter = property.getReadMethod();
Object value = getter.invoke(bean);
map.put(key, value);
}
}
} catch (Exception e) {
System.out.println("transBean2Map Error " + e);
}
return map;
}
public static <T> T mapToBean(Map<String, Object> map, T bean){
try {
BeanUtils.populate(bean, map);
} catch (IllegalAccessException | InvocationTargetException e) {
logger.error(e, e.fillInStackTrace());
}
return bean;
}
}