packagecom.x2;importjava.beans.BeanInfo;importjava.beans.Introspector;importjava.beans.PropertyDescriptor;importjava.lang.reflect.Method;importjava.util.HashMap;importjava.util.Map;public classBeanTest {public static Mapbean2Map(Object obj) {if (obj == null) {return null;
}
Map map = new HashMap();try{
BeanInfo beanInfo=Introspector.getBeanInfo(obj.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(obj);
map.put(key, value);
}
}
}catch(Exception e) {
e.printStackTrace();
}returnmap;
}public staticObject mapToBean(Class type, Map map) {
Object obj= null;try{
BeanInfo beanInfo=Introspector.getBeanInfo(type);
obj=type.newInstance();
PropertyDescriptor[] propertyDescriptors=beanInfo.getPropertyDescriptors();for(PropertyDescriptor descriptor : propertyDescriptors) {
String propertyName=descriptor.getName();if(map.containsKey(propertyName)) {
Object value=map.get(propertyName);
descriptor.getWriteMethod().invoke(obj, value);
}
}
}catch(Exception e) {
System.out.println("map转实体类出现异常");
}returnobj;
}public static voidmain(String[] args) {
Xieh xieh= newXieh();
xieh.setName("谢辉");
xieh.setAge(23);
Map map =bean2Map(xieh);
System.out.println(map.toString());
Xieh object= (Xieh) mapToBean(Xieh.class, map);
System.out.println(object.toString());
}
}