首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >java BeanUtils.copyProperties() 复制对象属性

java BeanUtils.copyProperties() 复制对象属性

作者头像
六月的雨在Tencent
发布2024-03-28 20:37:20
发布2024-03-28 20:37:20
3720
举报
文章被收录于专栏:CSDNCSDN

@[TOC](java 使用BeanUtils.copyProperties() 复制对象属性)

需求背景

这里有A对象和B对象两个具有很多相同属性的JavaBean,通过get、set方法一个一个属性的赋值会非常麻烦,这里就需要用到BeanUtils.copyProperties(source,target);复制A对象属性到B对象中。 代码实现 其中SeasonChapterTemp与SeasonChapter属性名称字段完全一样的

代码语言:javascript
复制
	public static void main(String[] args) {
		SeasonChapterTemp sct = new SeasonChapterTemp();
		sct.setChapterName("会计基础");
		sct.setChapterOrder("第一章");
		sct.setSequence(3);
		System.out.println("SeasonChapterTemp-first:"+sct.getChapterName()+"-"+sct.getChapterOrder());

		SeasonChapter sc = new SeasonChapter();
		BeanUtils.copyProperties(sct,sc);
		System.out.println("SeasonChapter-first:"+sc.getChapterName()+"-"+sc.getChapterOrder());

		sc.setChapterOrder("第三章");
		System.out.println("SeasonChapterTemp-second:"+sct.getChapterName()+"-"+sct.getChapterOrder());
		System.out.println("SeasonChapter-second:"+sc.getChapterName()+"-"+sc.getChapterOrder());

	}

运行结果

符合我们的预期,对SeasonChapter 对象的属性值更改不影响SeasonChapterTemp 的对应属性值。

**注:**通过BeanUtils.copyProperties对两个对象进行复制只是将两个对象的属性引用进行了复制,也就是说BeanUtils.copyProperties只是实现了浅复制,这样存在一个风险就是通过该方法复制的两个对象中的属性会引用相同的地址,一个对象对属性进行更改,另一个对象的属性也同时会被更改,这是我们在使用中需要注意的地方。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求背景
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档