

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 {
//一:map2javabean 把map对象转换为javabean
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);//得到属性name在map中对应的value。
Method set=property.getWriteMethod();//得到属性的set方法
//接下来将map的value转换为属性的value
set.invoke(object, value);//执行set方法
}
return object;
}
//二:将javabean转换为map
public static Map<String,Object> javabean2map(Object bean) throws Exception{ //传入一个javabean对象
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();//得到属性的name
Method get=property.getReadMethod();
Object value=get.invoke(bean);//执行get方法得到属性的值
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 {
//测试javabena2map
People peo=new People(18, "王麻子", '男');
Map<String, Object> map=BeanUtil.javabean2map(peo);
System.out.println("javabena2map>>>:"+map);
//测试map2javabena
People people=BeanUtil.map2bean(map, People.class);
System.out.println("map2javabena>>>:"+people);
}
}

还没有评论,来说两句吧...