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

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

话不多说!先总结:

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

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

		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());
linkId
null

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

		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());
linkId1
payType

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

		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());
linkId1
orderId1

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

		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());
linkId1
orderId1

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

		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());
null
null
http://www.lryc.cn/news/495113.html

相关文章:

  • 爬虫框架快速入门——Scrapy
  • 鸿蒙开发-HMS Kit能力集(应用内支付、推送服务)
  • TYUT设计模式大题
  • Webman中实现定时任务
  • 《以 C++破局:人工智能系统可解释性的探索与实现》
  • C++:QTableWidget删除选中行(单行,多行即可)
  • C++类中多线程的编码方式
  • 数据湖的概念(包含数据中台、数据湖、数据仓库、数据集市的区别)--了解数据湖,这一篇就够了
  • EDKII之安全启动详细介绍
  • 原生js上传图片
  • 使用torch==2.5.1版本用的清华源遇到的坑
  • 泷羽Sec-星河飞雪-BurpSuite之解码、日志、对比模块基础使用
  • 对拍详细使用方法
  • Python面向对象编程与模块化设计练习
  • Linux系统硬件老化测试脚本:自动化负载与监控
  • 搭建一个基于Web的文档管理系统,用于存储、共享和协作编辑文档
  • 排序学习整理(1)
  • 《深入探究 Java 中的 boolean 类型》
  • 智享 AI 自动无人直播系统:打破地域与时间枷锁中小微企业的营销破局利器
  • 接口测试工具:reqable
  • 同时多平台git配置:GitHub和Gitee生成不同的SSH Key
  • 刷题计划day24 回溯(三)【复原 IP 地址】【子集】【子集 II】
  • 从“找三角形”讲“等腰三角形”
  • Java中的泛型方法和泛型类
  • springboot学习-spring-boot-data-jdbc分页/排序/多表查询的例子
  • 通信与网络基础
  • 【3.存储系统】综合大题
  • 【Linux】【字符设备驱动】深入解析
  • 【JavaEE】多线程(2)
  • mac下Gpt Chrome升级成GptBrowser书签和保存的密码恢复