前言:
最近小编正在做一个功能,需要将一个实体复制给重新定义的相同实体的时候,使用BeanUtils.copyProperties(source, target)时,一直抛异常,控制台也没有打印出来,很是苦恼,不知道是哪里出问题了,于是百度了一下说属性里面存在空值,然后就尝试了所以使用各种办法始终没有解决。于是采用try..catch ,抓住了这个异常。今天分享给大家。
内容:
一、Java复制有好几种方法:
1、BeanUtils.copyProperties(source, target)
source 为源,target为目标,将源的值复制给目标。下面同理。
2、PropertyUtils.copyProperties(target,source);
二、问题:“java.lang.IllegalArgumentException: No destination bean specifie”
这句话的意思是:目标bean 不规范。
也就是说我定义的目标target( redsaleSettleVo)不规范。
(1)我原来的:
saleSettleVo redsaleSettleVo =null;
saleSettleVo saleSettleVo1 = saleSettleService.getSaleSettleById(vo.getId());
BeanUtils.copyProperties(saleSettleVo1,redsaleSettleVo);
(2)现在的:
saleSettleVo redsaleSettleVo =new saleSettleVo();
saleSettleVo saleSettleVo1 = saleSettleService.getSaleSettleById(vo.getId());
//将saleSettleVo1的值复制给redsaleSettleVo
BeanUtils.copyProperties(saleSettleVo1,redsaleSettleVo);
(3)之所以一直都抛异常,是因为没有重新实例化saleSettleVo。