java copyproperties_java中 BeanUtils.copyProperties的用法

java copyproperties_java中 BeanUtils.copyProperties的用法BeanUtils提供了对java发射和自省API的包装,这里对BeanUtils.copyProperties的用法做一个小小的介绍。通过函数名可以知道,copyProperties函数是对属性进行拷贝,该函数有两个参数,一个是原始的数据,另一个是接收这些属性的数据。这里给大家介绍一个我遇到的一个坑:在不同的jar包中,该函数的两个参数的位置不一样,有一种是copyProperties(java…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

BeanUtils提供了对java发射和自省API的包装,这里对BeanUtils.copyProperties的用法做一个小小的介绍。

通过函数名可以知道,copyProperties函数是对属性进行拷贝,该函数有两个参数,一个是原始的数据,另一个是接收这些属性的数据。这里给大家介绍一个我遇到的一个坑:在不同的jar包中,该函数的两个参数的位置不一样,有一种是copyProperties(java.lang.Object dest , java.lang.Object source);另外一种恰恰相反,copyProperties(java.lang.Object source , java.lang.Object dest),因此在实际使用的时候需要注意参数的位置。

当两个对象之间的属性完全一样时,毫无疑问调用copyProperties时完全成功的,但是如果两个对象之间存在不同的属性时,会发生什么情况呢,BeanUtils则不对这些属性进行处理,需要程序员手动处理。

除了BeanUtils以外,还有一个名为PropertyUtils的工具类,该类中也提供了copyProperties()方法,这个方法与前面说的方法相似,唯一不同点是PropertyUtils的工具类里面的copyProperties()方法提供类型转换功能,可以在支持的数据类型内进行数类型转换。由于增加了类型转换,因此速度会稍微慢一些。propertyUtils支持的转换类型如下:

*java.lang.BigDecimal*java.lang.BigInteger* booleanand java.lang.Boolean* byteand java.lang.Byte* charand java.lang.Character*java.lang.Class* doubleand java.lang.Double* floatand java.lang.Float* intand java.lang.Integer* longand java.lang.Long* shortand java.lang.Short*java.lang.String*java.sql.Date*java.sql.Time* java.sql.Timestamp

需要注意的是这里不支持java.util.Date,只支持java.sql.Date,因此在进行数据类型转换时需要注意这个问题。

BeanUtils.copyProperties虽然很实用,但是其花费的时间比较长,超过手动调用get和set方法,如果对时间没有太大要求可以考虑用这个函数。

本文参考自:https://www.cnblogs.com/HassanBlog/articles/3200239.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186457.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Kali Linux更新及配置更新源

    Kali Linux更新及配置更新源默认状态下查看更新源root@kali2019:~#cat/etc/apt/sources.list更改Kali的更新源root@kali2019:~#vim/etc/apt/sources.list若更新源不可用,在执行apt-getupdate之后如下所示:更改为中科大更新源执行获取更新命令执行安装更新命令apt-getupdradekali官方源以…

    2022年5月28日
    41
  • mysql创建数据库的步骤_sql创建数据库代码

    mysql创建数据库的步骤_sql创建数据库代码作者介绍:陈东明,饿了么北京技术中心架构组负责人,负责饿了么的产品线架构设计以及饿了么基础架构研发工作。曾任百度架构师,负责百度即时通讯产品的架构设计。具有丰富的大规模系统构建和基础架构的研发经验,善于复杂业务需求下的大并发、分布式系统设计和持续优化。个人微信公众号dongming_cdm。Tedis(https://github.com/eleme/tedis)是基于开源TiKV…

    2025年12月7日
    7
  • 锂电池管理芯片_锂电池充放电一体芯片

    锂电池管理芯片_锂电池充放电一体芯片‍FS4001‍4.2/4.354.25-10线性降压充电。FS406‍28.4/8.7/8.8/12.6/13.25开关升压充电。FS40‍08A4.2/8.4/12.69-23开关降压充电。FS406‍38.45-9自适应自适应5V升压和9V降压充电。FS40564.2/4.354.25-6.5线性降压充电。FS40674.2/4.354.25-24线性降压充电。FS40664.2/4.354.25-24线性降压充电。…

    2022年9月27日
    3
  • fork join框架原理_jalor6框架教程

    fork join框架原理_jalor6框架教程声明:本篇博客是在阅读了引用博客的两篇文章后做了简短的概括与归纳,只作为自己笔记文章目录一、思想二、工作窃取算法三、demo用例四、关键组件ForkJoinPoolForkJoinTaskForkJoinWorkerThreadWorkQueue五、Fork/Join运行流程图任务提交创建线程signalWork方法任务执行六、引用博客一、思想Fork/Join是Java7提供的并行执行…

    2026年2月3日
    3
  • spark处理大数据的几个实例介绍

    spark处理大数据的几个实例介绍在集群中跑应用,而不是在shell中感受写spark应用的过程整个过程为:1、案例分析:要用哪些spark的RDD的API2、编程实现:用到scala,3、提交到集群执行:如何提交到集群,文件是否先传到HDFS上4、监控执行结果:通过web可以看到介绍了四个案例:比如统计1千万个人的平均身高,如果用其他语言,估计要好几小时,因为磁盘读写,要反复计算用了sp

    2022年6月7日
    28
  • 一套很好的.net控件radcontrols介绍

    一套很好的.net控件radcontrols介绍中文在线阅读器简介:最新的项目有一个是XPS的在线阅读器,这个项目可以说是一个典点的Silverlight商业项目应用,用户可以直接通过一个website查看一个xps文档,这个程序类似目前网站上常见的Flash阅读器,XPS是微软的第的文件格式,是与Adobe的PDF文件格式对立的新格式,而且直接被Office2007(Office12)和WindowsVista支持…

    2022年7月24日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号