`

对象拷贝工具

 
阅读更多

目前较为流行的用于对象拷贝的工具类:

Apache的两个版本:(反射机制)

org.apache.commons.beanutils.PropertyUtils.copyProperties(Object dest, Object orig)

org.apache.commons.beanutils.BeanUtils.copyProperties(Object dest, Object orig)

spring版本:(反射机制)

org.springframework.beans.BeanUtils.copyProperties(Object source, Object target, Class editable, String[] ignoreProperties)

cglib版本:(使用动态代理,效率高)

net.sf.cglib.beans.BeanCopier.copy(Object paramObject1, Object paramObject2, Converter paramConverter)

 

有网友对这四种工具进行性能测试结果如下:

                                             10次                        10000次

Apache-BeanUtils                    53                           230

Apache-PropertyUtils               4                              91

Spring-BeanUtils                      11                              31

BeanCopier                                0                               1

其中BeanCopier效率最高,只是在创建代理类的时候比较耗时,可以使用单例,

Apache-BeanUtils效率最低,只是它能在性能名形同,类型不匹配是进行初级转换,而且在使用中发现copy long类型数据时,如果源对象该字段为空,则目标字段自动赋值为0

spring-beanutils在次数多时性能比较好

apache-propertyutils表现则呈现线性增长的趋势

分享到:
评论

相关推荐

    javaEE的对象拷贝工具dozer

    Java EE对象拷贝工具Dozer是一款强大的数据映射库,它简化了在Java对象之间进行深度复制的过程。在软件开发中,特别是在业务层处理数据时,我们经常需要将一个对象的属性值复制到另一个对象中,Dozer提供了一个优雅...

    对象属性值的复制工具类

    对象属性值的复制工具类 1.全复制 2.部分复制 3.部分不复制

    Java copy对象的工具类

    Java CopyUtil工具类,可以进行对象的深copy,比如:对象里面包含对象,对象里面包含Map,List,Set...等复杂类型的属性都可以copy,copy后的对象与原有对象没有联系,即改变原有对象内容,不会改变copy后的对象里面的...

    jso-copy:Javascript对象复制工具

    拷贝Javascript对象复制工具用于复制,克隆和合并对象的通用工具集。 节点使用情况: var jsoCopy = require ( 'jsocopy.js' ) // or 'jsocopy.min.ja' , jsoClone = require jsoCopy . clone , jsoMerge = require ...

    Domain对象拷贝工具类

    用于两个domain对象的拷贝,支持字段自动覆盖,选择性覆盖,选择性字段拷贝,作用:当你有多个domain对象都需要生成另外的同一个domain对象的时候这个方法就很有用了,或许存在BUG,欢迎指出

    excel对象清理工具/vba清理Excel对象

    excel多余对象清理工具/Excel瘦身小工具/Excel表格行列统计 有暴力删除(删除全部对象,不管是否有用)模式 有常规清理(目前仅支持删除AutoShape/图表、Textbox/文本框,共2种对象)模式 --这几种对象正常都不是...

    java不同对象及集合的多次复制

    - 当需要对多个对象进行复制时,可以使用上述的工具库,如ModelMapper的`map()`方法可以接受多个源对象和目标对象,一次完成多个对象的复制。 7. **指定复制类型** - 在某些场景下,我们可能需要将源对象的属性值...

    MyBatisDemo && JAVA把一个对象的全部属性复制到另一个相同的对象

    4. **使用工具类或库**:例如,Apache Commons Lang库提供了`BeanUtils.copyProperties()`方法,可以方便地将一个对象的所有属性复制到另一个对象。这种方法简单易用,但需要注意的是,如果源对象和目标对象有属性...

    对象克隆、复制工具

    对象复制工具,基于cglib BeanCopier 实现对实体对象、持久化对象、代理对象的克隆和复制, 避免重复克隆和复制,避免无限循环引用,(校验hashCode) 可指定实体对象和集合属性的克隆深度

    房间内对象快速拷贝工具

    在这个工具中,"CopyElements.dll"很可能包含了实现房间对象拷贝算法的代码,能够智能识别房间内的各种元素,然后进行精确复制和粘贴。 在实际操作中,用户可能首先需要加载"copyElements.addin"文件到他们的设计...

    java不同对象之间及集合的复制

    在Java编程中,对象之间的复制是一项常见的操作,特别是在数据传输、模型转换或者持久化存储等场景下。...而了解各种复制策略和工具,可以帮助我们更好地处理复杂的对象关系,提高程序的健壮性和效率。

    BeanUtil.java,对象属性拷贝工具

    BeanUtil.java,对象属性拷贝工具

    图像智能调整及对象移除工具

    克隆图章工具可以复制图像的一部分并将其粘贴到其他位置,覆盖不需要的对象。修复画笔则通过取样周围区域的像素来填补被移除对象留下的空白。内容感知填充是更为先进的技术,它会分析周围环境,生成与周围内容相匹配...

    jQuery实现简单复制json对象和json对象集合操作示例.docx

    浅拷贝只会复制对象的顶层属性,而深拷贝会递归复制整个对象及其嵌套的对象或数组。 1. **浅拷贝**:当仅传递两个对象作为参数时,`jQuery.extend(target, source)`,`target` 对象将接收 `source` 的属性,但不会...

    28个java常用的工具类源码

    10. **对象拷贝工具类**:如BeanUtils,实现对象属性的深度或浅度复制,减少了手动编写复制代码的工作。 11. **编码解码工具类**:如EncodingUtils,支持各种字符编码和解码,解决跨平台时的编码问题。 12. **正则...

    文件批量拷贝、剪切小工具源码-C#

    这个“文件批量拷贝、剪切小工具源码-C#”就是为了解决这类问题而设计的。C#是一种强大的面向对象的编程语言,由微软公司开发,广泛应用于Windows平台上的应用开发,包括桌面应用、Web应用以及游戏开发等。 在这个...

    dotnet-ShengMapper对象属性值映射拷贝工具

    对象属性值映射/拷贝工具。不需要创建映射规则,不要求对象类型一致,适用于简单直接的拷贝操作,可以全属性拷贝,指定属性拷贝,排除指定的属性。拷贝包含 10 个属性的对象 10 万次,耗时 4.x 秒(普通开发机)。

    AutoCAD对象对齐,对象均布工具

    AutoCad对象对齐,均布对象工具,包括左对齐、居中对齐,右对其,上对其、下对齐等6种对其方式,此外还有指定点对其,指定对象对齐,均布工具有垂直均布、水平均布等8种均布方式,还包括指定间距均布,制定范围均布...

    java 深度拷贝 复制 深度复制.zip

    在Java编程中,深度拷贝和浅拷贝是两种重要的对象复制方式,它们涉及到对象的内存管理和内存结构的复制。本篇文章将详细讲解如何利用Java的反射机制实现深度拷贝,以及这种方式的优点和注意事项。 首先,理解深度...

    一个不错的文件拷贝工具

    标签“拷贝”、“文件”、“工具”分别对应了软件的主要功能、操作对象和类型。拷贝是指复制文件或文件夹的行为,文件是操作的核心,而工具则表明这是一个用于执行拷贝任务的程序。 在压缩包子文件“fastcopy.exe”...

Global site tag (gtag.js) - Google Analytics