目录
一、copyProperties(Object A,Object B)
二、populate(Object bean, Map properties)
BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。
一、copyProperties(Object A,Object B)
通过反射将一个对象的值赋值给另一个对象
1.1BeanUtils(推荐)
1.1.1特性
*只赋值字段名称、类型相同的字段;
*名称或者类型不同的字段不做处理,需要手动处理。
*适应于包含大量属性的,此方法耗时长,如果属性少的话建议使用get/set方法进行赋值
1.1.2代码
注:引入的jar不同,用法不同
import org.springframework.beans.BeanUtils; //(常用)
//BeanUtils.copyProperties(A,B) 将A中的值赋值给B
MovieCompany movieCompany = new MovieCompany();
MovieCompanyExt movieCompanyExt = movieCompanyMapperExt.getCompanyByCompanyCode(redPacketExt.getCompanyCode());
BeanUtils.copyProperties(movieCompanyExt, movieCompany);
------------------------------------------------------------------------------------------
import org.apache.commons.beanutils.BeanUtils;
//BeanUtils.copyProperties(B,A) 将A中的值赋值给B
MovieCompany movieCompany = new MovieCompany();
MovieCompanyExt movieCompanyExt = movieCompanyMapperExt.getCompanyByCompanyCode(redPacketExt.getCompanyCode());
BeanUtils.copyProperties(movieCompany, movieCompanyExt);
1.2PropertyUtils
其实这个与上面的BeanUtils中用法一致,只是这种方法会进行类型的自动转换功能。在开发中这种用法还是比较少的,推荐使用BeanUtils方法,然后手动将类型不同的参数处理下就可以了。
二、populate(Object bean, Map properties)
将map转换为对象
1.遍历Map集合中的key
2.判断key与bean实体中是否有相应的属性
3.就把这个key对应的value值赋给bean的属性
2.1BeanUtils
//BeanUtils.populate( Object bean, Map properties )
import org.apache.commons.beanutils.BeanUtils;
Product product = new Product();
Map map = request.getParameterMap();
BeanUtils.populate(product, map);
三、describe(Object bean)
3.1BeanUtils
BeanUtils.describe转换后的Map的泛型是<String,String>此时获取到的字段如果是数组类型的话只获取了第一个元素
import org.apache.commons.beanutils.BeanUtils;
Map<String,Object> param=new HashMap<String,Object>();
param = BeanUtils.describe(movieCompany);
3.2PropertyUtils(推荐)
import org.apache.commons.beanutils.PropertyUtils;
Map<String,Object> param=new HashMap<String,Object>();
param = PropertyUtils.describe(movieCompany);