关于BeanUtils.copyProperties是否能正常复制字段【详细版】

news/2024/12/3 7:20:08/

话不多说!先总结:

1、字段相同,类型不同(不复制,也不报错)
2、子类父类
(1)子类传给父类(可以正常复制)
(2)父类传给子类(可以正常复制)
3、子类父类(属性类对象)
(1)子类属性传给父类属性(可以正常复制)
(2)父类属性传给子类属性(不复制,也不报错)

具体代码如下:
1、字段相同,类型不同(不复制,也不报错)

java">		RequestVO order = new RequestVO();order.setLinkId("linkId");order.setPayType("1");RequestVO2 order1 = new RequestVO2();BeanUtils.copyProperties(order, order1);System.out.println(order1.getLinkId());System.out.println(order1.getPayType());
java">linkId
null

2、子类父类
(1)子类传给父类(可以正常复制)

java">		RequestVTest order1 = new RequestVTest();order1.setLinkId("linkId1");order1.setOrderId("orderId1");order1.setPayType("payType");RequestVO order = new RequestVO();BeanUtils.copyProperties(order1, order);System.out.println(order.getLinkId());System.out.println(order.getPayType());
java">linkId1
payType

(2)父类传给子类(可以正常复制)

java">		OneToManyOrderRequestVTest order1 = new RequestVTest();RequestVO order = new RequestVO();order.setLinkId("linkId1");order.setOrderId("orderId1");BeanUtils.copyProperties(order, order1);System.out.println(order1.getLinkId());System.out.println(order1.getOrderId());
java">linkId1
orderId1

3、子类父类(属性类对象)
(1)子类属性传给父类属性(可以正常复制)

java">		UserRequestVO vo = new UserRequestVO();UserRequestVO2 vo1 = new UserRequestVO2();RequestVTest order1 = new RequestVTest();order1.setLinkId("linkId1");order1.setOrderId("orderId1");vo1.setOrderRequestVO(order1);BeanUtils.copyProperties(vo1, vo);System.out.println(vo.getOrderRequestVO().getLinkId());System.out.println(vo.getOrderRequestVO().getOrderId());
java">linkId1
orderId1

(2)父类属性传给子类属性(不复制,也不报错)

java">		UserRequestVO vo = new UserRequestVO();OrderRequestVO order1 = new OrderRequestVO();order1.setLinkId("linkId1");order1.setOrderId("orderId1");vo.setOrderRequestVO(order1);UserRequestVO2 vo1 = new UserRequestVO2();vo1.setOrderRequestVO(new OrderRequestVTest());BeanUtils.copyProperties(vo, vo1);System.out.println(vo1.getOrderRequestVO().getLinkId());System.out.println(vo1.getOrderRequestVO().getOrderId());
java">null
null

http://www.ppmy.cn/news/1551937.html

相关文章

挑战用React封装100个组件【006】

项目地址 https://github.com/hismeyy/react-component-100 组件描述 组件适用于展示个人信息,别人还可以关注,发消息操作 样式展示 前置依赖 今天我们的这个挑战需要用用到了 react-icons 依赖,因此,我们需要先安装它。 # …

【07】MySQL中的DQL(数据查询语言)详解

文章目录 一、基础查询:SELECT语句1.1 查询指定列的数据1.2 查询所有列的数据1.3 查询去重数据 二、FROM 子句三、连接查询:JOIN 语句3.1 INNER JOIN3.2 LEFT JOIN(或 LEFT OUTER JOIN)3.3 RIGHT JOIN(或 RIGHT OUTER …

重塑企业报修效率:报修进度查询功能深度解析与优化方向

在当下快节奏的现代企业运营环境中,设备设施的维护修理工作扮演着举足轻重的角色。无论是生产线上繁忙的机械部件,还是办公区不可或缺的电子装备,任何故障的出现都将直接影响企业的生产效率和日常运营。因此,构建一个高效且便捷的…

C/C++基础知识复习(32)

1) 什么是 C 中的函数对象?它有什么特点? 函数对象(Function Object) 是一个可以像函数一样调用的对象。换句话说,函数对象是重载了 operator() 运算符的类或结构体的实例。由于 C 中一切都是对象,函数对象…

【Unity插件】Shiny SSR 2 - Screen Space Reflections

Shiny SSR 2介绍 Shiny SSR 2 - Screen Space Reflections增加了屏幕空间反射到您的实时场景,使他们更加现实。 这个包包含2个针对每个渲染管道进行优化的包: -Shiny SSR 2 - Screen Space Reflections支持内置渲染关系。 Shiny SSR 2 - Screen Spac…

RTC 实时时钟实验

利用 ALIENTEK 2.8 寸 TFTLCD 模块来显示日期和时间,实现一个简单的时钟。 STM32F1 RTC 时钟简介 STM32 的实时时钟( RTC )是一个独立的定时器。 STM32 的 RTC 模块拥有一组连续计数 的计数器,在相应软件配置下&#xf…

基于Springboot开发的时光兼职网

一、功能介绍 时光兼职网包含管理员、用户、商家三个角色以及前后台系统。 前台系统功能 首页、兼职信息推荐、查看更多等 职位申请、申请日期、上传简历、点击下载简历、留言反馈等 个人中心、上传图片、更新信息等 后台系统功能 用户登录: 个人中心、修改密码…

Linux 各个目录作用

刚毕业的时候学习Linux基础知识,发现了一份特别好的文档快乐的 Linux 命令行,翻译者是happypeter,作者当年也在慕课录制了react等前端相关的视频,通俗易懂,十分推荐 关于Linux的目录,多数博客已有详细介绍…