map -》 Bean
BeanUtils.populate(Object bean, Map<String, ? extends Object> properties);
Bean -》 Map
BeanMap testMap = new BeanMap(Object bean);
需要添加的 Maven 依赖
<!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils -->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
参考资料:
1、Map和Bean的相互转换
https://www.cnblogs.com/jing1617/p/7007580.html
Map和Bean的相互转换
Map和Bean的相互转换
BeanUtils位于org.apache.commons.beanutils.BeanUtils下面,其方法populate的作用解释如下:
完整方法:
BeanUtils.populate( Object bean, Map properties ),
这个方法会遍历map<key, value>中的key,如果bean中有这个属性,就把这个key对应的value值赋给bean的属性。
1、bean 转换成 map
Person person1=new Person();
person1.setName("name1");
person1.setSex("sex1");
Map<String, String> map=null;
try {
map = BeanUtils.describe(person1);
2、map 转换成 bean
/**
*
*
* Map转换层Bean,使用泛型免去了类型转换的麻烦。
* @param <T>
* @param map
* @param class1
* @return
*/
public static <T> T map2Bean(Map<String, String> map, Class<T> class1) {
T bean = null;
try {
bean = class1.newInstance();
BeanUtils.populate(bean, map);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return bean;
}