javabean People代码
package TestIntrosPector;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class People {
private int age;
private String name;
private char sex='女';
}
Beanutil转换工具类
package map2javabean;
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
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;
public class BeanUtil {
public static <T> T map2bean(Map<String, Object> map,Class<T> beantype) throws Exception{
T object=beantype.newInstance();
BeanInfo beaninfo=Introspector.getBeanInfo(beantype,Object.class);
PropertyDescriptor[] pro=beaninfo.getPropertyDescriptors();
for (PropertyDescriptor property : pro) {
String name=property.getName();
Object value=map.get(name);
Method set=property.getWriteMethod();
set.invoke(object, value);
}
return object;
}
public static Map<String,Object> javabean2map(Object bean) throws Exception{
Map<String, Object> map=new HashMap<>();
BeanInfo beaninfo=Introspector.getBeanInfo(bean.getClass(),Object.class);
PropertyDescriptor[] pro=beaninfo.getPropertyDescriptors();
for (PropertyDescriptor property : pro) {
String key=property.getName();
Method get=property.getReadMethod();
Object value=get.invoke(bean);
map.put(key, value);
}
return map;
}
}
测试Beanutil
package map2javabean;
import java.util.Map;
import TestIntrosPector.People;
public class TestBeanUtil {
public static void main(String[] args) throws Exception {
People peo=new People(18, "王麻子", '男');
Map<String, Object> map=BeanUtil.javabean2map(peo);
System.out.println("javabena2map>>>:"+map);
People people=BeanUtil.map2bean(map, People.class);
System.out.println("map2javabena>>>:"+people);
}
}