/**
* 把map键值对转化为javabean对象
*
* @param type
* @param map
* @return
* @throws exception
*/
private object transformaptoobject(class<? extends object> type, map<string, string> map) throws exception {
beaninfo beaninfo = introspector.getbeaninfo(type); //获取类属性
object obj = type.newinstance(); //创建 javabean 对象
//给 javabean对象的属性赋值
propertydescriptor[] propertydescriptors = beaninfo.getpropertydescriptors();
for (int i = 0; i < propertydescriptors.length; i++) {
propertydescriptor descriptor = propertydescriptors[i];
string propertyname = descriptor.getname();
if (map.containskey(propertyname)) {
try {
object value = map.get(propertyname);
object[] args = new object[1];
args[0] = value;
descriptor.getwritemethod().invoke(obj, args);
} catch (exception e) {
e.printstacktrace();
}
}
}
return obj;
}
/**
* 把javabean对象转换为map键值对
*
* @param bean
* @return
* @throws exception
*/
private map<string, string> transforobjecttomap(object bean) throws exception {
class<? extends object> type = bean.getclass();
map<string, string> returnmap = new hashmap<string, string>();
beaninfo beaninfo = introspector.getbeaninfo(type);
propertydescriptor[] propertydescriptors = beaninfo.getpropertydescriptors();
for (int i = 0; i < propertydescriptors.length; i++) {
propertydescriptor descriptor = propertydescriptors[i];
string propertyname = descriptor.getname();
if (!propertyname.equals("class")) {
method readmethod = descriptor.getreadmethod();
object result = readmethod.invoke(bean, new object[0]);
if (result != null) {
returnmap.put(propertyname, result.tostring());
}
}
}
return returnmap;
}