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

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

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


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


image.png


所以我们使用的是:


image.png


简单示例:


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


image.png


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


image.png


一般经常看到这种代码:


image.png


现在只需要:


BeanUtils.copyProperties(dog, specialDog);


image.png


把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());
    }


结果:


image.png


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


OK,该篇介绍就到此吧。

相关文章
|
2天前
|
安全 Java 编译器
java中类与对象回顾总结-2
java中类与对象回顾总结
16 3
|
1天前
|
消息中间件 Java RocketMQ
MQ产品使用合集之在同一个 Java 进程内建立三个消费对象并设置三个消费者组订阅同一主题和标签的情况下,是否会发生其中一个消费者组无法接收到消息的现象
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
9 1
|
2天前
|
Java 编译器
【Java开发指南 | 第一篇】类、对象基础概念及Java特征
【Java开发指南 | 第一篇】类、对象基础概念及Java特征
11 4
|
2天前
|
安全 Java 数据安全/隐私保护
Java一分钟之-Java反射机制:动态操作类与对象
【5月更文挑战第12天】本文介绍了Java反射机制的基本用法,包括获取Class对象、创建对象、访问字段和调用方法。同时,讨论了常见的问题和易错点,如忽略访问权限检查、未捕获异常以及性能损耗,并提供了相应的避免策略。理解反射的工作原理和合理使用有助于提升代码灵活性,但需注意其带来的安全风险和性能影响。
23 4
|
2天前
|
Java
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
|
2天前
|
缓存 Java 程序员
关于创建、销毁对象⭐Java程序员需要掌握的8个编程好习惯
关于创建、销毁对象⭐Java程序员需要掌握的8个编程好习惯
关于创建、销毁对象⭐Java程序员需要掌握的8个编程好习惯
|
2天前
|
Java
从源码出发:JAVA中对象的比较
从源码出发:JAVA中对象的比较
20 3
|
SQL Java 关系型数据库
java8 多字段分组+count
java8 多字段分组+count
java8 多字段分组+count
|
2天前
|
安全 Java 调度
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第12天】 在现代软件开发中,多线程编程是提升应用程序性能和响应能力的关键手段之一。特别是在Java语言中,由于其内置的跨平台线程支持,开发者可以轻松地创建和管理线程。然而,随之而来的并发问题也不容小觑。本文将探讨Java并发编程的核心概念,包括线程安全策略、锁机制以及性能优化技巧。通过实例分析与性能比较,我们旨在为读者提供一套既确保线程安全又兼顾性能的编程指导。
|
1天前
|
安全 Java 开发者
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第15天】本文将深入探讨Java并发编程的核心概念,包括线程安全和性能优化。我们将通过实例分析,理解线程安全的重要性,并学习如何通过各种技术和策略来实现它。同时,我们也将探讨如何在保证线程安全的同时,提高程序的性能。