iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java中BeanUtils.copyProperties的示例分析
  • 922
分享到

Java中BeanUtils.copyProperties的示例分析

2023-06-20 21:06:56 922人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关Java中BeanUtils.copyProperties的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。场景开发中经常遇到,把父类的属性拷贝到子类中。通常有2种方法:

这篇文章将为大家详细讲解有关Java中BeanUtils.copyProperties的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

场景

开发中经常遇到,把父类的属性拷贝到子类中。通常有2种方法:
1、一个一个set
2、用BeanUtils.copyProperties
很显然BeanUtils更加方便,也美观很多。
那么任何情况都能使用BeanUtils么,当然不是。要先了解他。

BeanUtils是深拷贝,还是浅拷贝?

是浅拷贝。
浅拷贝: 只是调用子对象的set方法,并没有将所有属性拷贝。(也就是说,引用的一个内存地址)
深拷贝: 将子对象的属性也拷贝过去。

什么情况适合用BeanUtils

如果都是单一的属性,那么不涉及到深拷贝的问题,适合用BeanUtils。

有子对象就一定不能用BeanUtils么

并不绝对,这个要区分考虑:
1、子对象还要改动。
2、子对象不怎么改动。
虽然有子对象,但是子对象并不怎么改动,那么用BeanUtils也是没问题的。

代码例子

下面用代码说明下。
翠山有个儿子无忌,儿子继承了他的face和height。
但是life应该是自己的。
后来翠山自刎而死,无忌也变成dead状态了。这就是浅拷贝,无忌用的life引用的翠山的life对象。

Father类:

@Datapublic class Father {    private String face; // 长相    private String height; // 身高    private Life life; // 生命}

Life 类:

@Datapublic class Life {    private String status;}

Son类和main方法:

@Datapublic class Son extends Father{    private Life life;    public static void main(String[] args) {        Father cuishan = new Father();        cuishan.setFace("handsome");        cuishan.setHeight("180");        Life cuishanLife = new Life();        cuishanLife.setStatus("alive");        cuishan.setLife(cuishanLife);        Son wuji=new Son();        BeanUtils.copyProperties(cuishan,wuji);//        Life wujiLife = wuji.getLife();//        wujiLife.setStatus("alive");//        wuji.setLife(wujiLife);//        cuishanLife.setStatus("dead"); // 翠山后来自刎了        System.out.println(JSON.tojsONString(cuishan));        System.out.println(JSON.toJSONString(wuji));    }}

上面注释出的代码可以如下替换:
case1和case2还是受浅拷贝的影响,case3不受。
case1: 翠山自刎,无忌也挂了

//        Life wujiLife = wuji.getLife();//        wujiLife.setStatus("alive");//        wuji.setLife(wujiLife);//        cuishanLife.setStatus("dead"); // 翠山后来自刎了

case2: 翠山自刎,无忌设置或者,翠山也活了

//        cuishanLife.setStatus("dead"); // 翠山后来自刎了//        Life wujiLife = wuji.getLife();//        wujiLife.setStatus("alive");//        wuji.setLife(wujiLife);

case3: 翠山和无忌互不影响

cuishanLife.setStatus("dead"); // 翠山自刎了  该行放在上下均可        // 无忌用个新对象 不受翠山影响了        Life wujiLife = new Life();        wujiLife.setStatus("alive");        wuji.setLife(wujiLife);

dest ,src 还是 src,dest

笔者在这个爬过坑。
因为记得有beanutils这个工具,直接import了。
发现有copyProperty和copyProperties。 看了下发现是 dest,src ,于是果断使用,结果发现参数没了。

其实常见的BeanUtils有2个:
spring有BeanUtils
apache的commons也有BeanUtils。

区别如下:

spring的BeanUtilscommons的BeanUtils
方法copyProperty和copyPropertiescopyProperties
参数src ,destdest,src

关于“Java中BeanUtils.copyProperties的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Java中BeanUtils.copyProperties的示例分析

本文链接: https://www.lsjlt.com/news/300178.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中BeanUtils.copyProperties的示例分析
    这篇文章将为大家详细讲解有关Java中BeanUtils.copyProperties的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。场景开发中经常遇到,把父类的属性拷贝到子类中。通常有2种方法:...
    99+
    2023-06-20
  • Java中BigDecimal的示例分析
    小编给大家分享一下Java中BigDecimal的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!引言  float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值...
    99+
    2023-06-20
  • java中ORM的示例分析
    这篇文章将为大家详细讲解有关java中ORM的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于Java的实现了W...
    99+
    2023-06-14
  • Java中NIO的示例分析
    这篇文章主要介绍了Java中NIO的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、Java思维导图二、I/O模型I/O模型的本质是用什么样的通道进行数据的发送和接...
    99+
    2023-06-29
  • Java中hashcode的示例分析
    小编给大家分享一下Java中hashcode的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java基本数据类型有哪些Java的基本数据类型分为:1、整数...
    99+
    2023-06-14
  • java中JDBC的示例分析
    这篇文章将为大家详细讲解有关java中JDBC的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于Java的实现了...
    99+
    2023-06-14
  • Java中Maven的示例分析
    这篇文章给大家分享的是有关Java中Maven的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于Java的实现了Web ...
    99+
    2023-06-14
  • Java中锁的示例分析
    小编给大家分享一下Java中锁的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java中的锁Java中的加锁操作有两种: 1.synchronized锁(...
    99+
    2023-06-20
  • Java的示例分析
    这篇文章将为大家详细讲解有关Java的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、try with catch还记得这样的代码吗?我们需要手动的关闭资源的流,不然会造成资源泄漏,因为虚拟机无...
    99+
    2023-06-15
  • java中class实例的示例分析
    这篇文章将为大家详细讲解有关java中class实例的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、结构说明(1)class:外部类,成员(成员内部类,静态内部类),局部内部类,匿名内部类(2...
    99+
    2023-06-15
  • Java中链表的示例分析
    这篇文章将为大家详细讲解有关Java中链表的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。题目一 解法class Solution {  &nbs...
    99+
    2023-06-29
  • Java中变量的示例分析
    这篇文章将为大家详细讲解有关Java中变量的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。变量概念:1.是内存中的一个存储区域2.该区域有自己的名称(变量名)和类...
    99+
    2022-10-19
  • Java中IO流的示例分析
    这篇文章主要为大家展示了“Java中IO流的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中IO流的示例分析”这篇文章吧。I/O简介I/O是Input/output的缩写,在ja...
    99+
    2023-06-20
  • Java中String类的示例分析
    这篇文章主要为大家展示了“Java中String类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中String类的示例分析”这篇文章吧。带大家了解一下java的基础法语---S...
    99+
    2023-06-15
  • Java中泛型的示例分析
    小编给大家分享一下Java中泛型的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 为什么使用泛型早期的Object类型可以接收任意的对象类型,但是在实...
    99+
    2023-06-20
  • Java中集合的示例分析
    小编给大家分享一下Java中集合的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java集合java集合类存放于java.util包中,是一个用来存放对象...
    99+
    2023-06-20
  • Java中方法的示例分析
    这篇文章给大家分享的是有关Java中方法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是方法例如:System.out.println();其结构为-->类.对象.方法;其含义为-->调...
    99+
    2023-06-20
  • Java中数组的示例分析
    小编给大家分享一下Java中数组的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!数组的定义数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按...
    99+
    2023-06-20
  • Java中Thread类的示例分析
    这篇文章主要为大家展示了“Java中Thread类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中Thread类的示例分析”这篇文章吧。一,Thread 的几个常见属性Thre...
    99+
    2023-06-29
  • Java中Spring Boot的示例分析
    这篇文章主要介绍Java中Spring Boot的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 什么是 Spring Boot?Spring Boot 是为 Spring 服务的,是用来简化新 Spri...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作