类与类转换,集合和集合转换

文章介绍了在Java中使用Spring的BeanUtils和ApacheCommons的BeanUtils进行对象属性复制的方法,包括参数位置的区别以及在目标对象缺少源对象字段时的行为。Spring的实现能处理目标对象缺少字段的情况,而ApacheCommons则要求目标对象包含源对象的所有字段。此外,文章还提到了集合到集合的转换示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类与类转换:

//org.springframework.beans.BeanUtils
public static void copyProperties(Object source, Object target){....}

//org.apache.commons.beanutils.BeanUtils
public static void copyProperties(Object dest,Object orig){....}

有两种方式,方法名一样,但是引用包不一样

import org.springframework.beans.BeanUtils;
BeanUtils.copyProperties(被copy对象,要输出显示的新对象)

举例:

 输出结果:

执行结果如下:
	Student(id=00c47e77-785d-4939-89db-e757979050ec, name=zhangsan, age=19)
	Teacher(id=00c47e77-785d-4939-89db-e757979050ec, name=zhangsan, age=19, sex=null)

 第二种: 

org.apache.commons.beanutils.BeanUtils
BeanUtils.copyProperties(teacher,student); //因为apache包下被copy的参数在第二个位置

apache包下被copy的参数在第二个位置

小结:当目标对象(target/dest)中包含被copy的对象(source/orig)的所有字段时,两种包下的copyProperties方法均可以执行成功。 

目标对象(target/dest)中不包含被copy的对象(source/orig)的所有字段时,应选用org.springframework.beans.BeanUtils下的copyProperties方法 

小结:目标对象(target/dest)中包含被copy的对象(source/orig)的所有字段时,两个包下的copy方法都可以,而且目标对象(target/dest)中多于的对象的值不会被覆盖掉。 

(初始对象 a.b.c   二次对象 a.b.c.d  当d有值,进行对象赋值时,d值不会消失)

总结:

​ 1、org.apache.commons.beanutils.BeanUtils和org.springframework.beans.BeanUtils两个包中的copyProperties方法目标对象和源对象参数的位置是相反,使用时需要注意。

​ 2、使用org.apache.commons.beanutils.BeanUtils进行copy对象时,被copy的对象(source/orig)中包含的字段目标对象(target/dest)必须包含,可以有其他的多于字段,类型可以不相同,但字段名称必须一致;org.springframework.beans.BeanUtils中的没有这个限制。

集合与集合转换 

ConvertBeanUtils.converBean2BeanInList(data, SysDictDataRes.class);

第一槽是初级集合,第二槽是新集合

List<SpDepositInfo> list = spDepositInfoService.selectSpDepositInfoList(spDepositInfo);
List spDepositInfoExcelList = ConvertBeanUtils.converBean2BeanInList(list,SpDepositInfoExcel.class);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值