当前位置: 首页 > news >正文

JAVA 将一个对象的所有字段值 赋给另一个 对象

如题,这种场景其实项目里使用场景很多,经常需要进行这种对象值的复用,但是又怕使用不准确,影响到原对象的值。

那么该篇文章介绍一个方法,简单粗暴,就是使用BeanUtils。




 

所以我们使用的是:

 

 

简单示例:

Dog,里面有两个字段(构造方法,setget省略):

 而SpecialDog里面有三个字段,其中name和age是一样的,但是多了一个nickName字段,

 

一般经常看到这种代码:

 

现在只需要:

BeanUtils.copyProperties(dog, specialDog);

把dog字段属性赋值给specialDog。

检验一下:

 

    public static void main(String[] args) throws Exception {


        Dog dog=new Dog("kiki",1);
        SpecialDog specialDog=new SpecialDog();
        BeanUtils.copyProperties(dog, specialDog);
        dog.setName("lulu");
        System.out.println(specialDog.toString());
        System.out.println(dog.toString());
        

    }

结果:

 可以看到属性值已经赋值成功了,而且修改dog不影响specialDog的属性(注意这里的场景没有涉及到引用别的对象的使用,如果涉及到要注意了,BeanUtils.copyProperties是浅拷贝 ,浅拷贝出来的对象和原对象 中 的引用的对象都会同时受修改影响,因为浅拷贝出来,类内引用的其他对象都是同个对象)。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OK,该篇介绍就到此吧。

相关文章:

  • RabbitMq Virtual host ‘myHost’ experienced an error on node XXXX and may be inaccessible
  • Springboot 整合Shiro 轻量级权限框架,从数据库设计开始带你快速上手shiro
  • JAVA 解决URLEncoder加密后,%后的字母变成小写
  • Java 将带有 ‘T’的时间字符串转换成yyyy-MM-dd HH:mm:ss 格式
  • 【硬着头皮】 你在玩的什么Map啊
  • 【硬着头皮】 你别查询了,不就id么?
  • 【硬着头皮】 去重确实可以这么去,但是
  • 【硬着头皮】 你在筛选List里面的数据么?
  • 【硬着头皮】 停手,时间格式转换不一定要在外面转换
  • 【硬着头皮】 喂,你不就想想看数组里的值么
  • 【硬着头皮】 比较两个数大小,麻烦写得整洁点
  • 【硬着头皮】 比较多个数的大小,麻烦也写得整洁点
  • Springboot 使用设计模式- 策略模式
  • Springboot 整合ElasticSearch 常用的插入查询,模糊查询,范围查询
  • JAVA 关键字、敏感字 屏蔽过滤功能实现
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • CSS3 变换
  • HTTP中的ETag在移动客户端的应用
  • java中具有继承关系的类及其对象初始化顺序
  • Leetcode 27 Remove Element
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Objective-C 中关联引用的概念
  • Webpack 4 学习01(基础配置)
  • WebSocket使用
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 如何在GitHub上创建个人博客
  • 实现简单的正则表达式引擎
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 推荐一个React的管理后台框架
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 走向全栈之MongoDB的使用
  • nb
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​2021半年盘点,不想你错过的重磅新书
  • #if和#ifdef区别
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (转)LINQ之路
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET Core中Emit的使用
  • .net 发送邮件
  • .net 简单实现MD5
  • .NET 设计模式初探
  • .net 生成二级域名
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .sdf和.msp文件读取