目前较为流行的用于对象拷贝的工具类:
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表现则呈现线性增长的趋势
相关推荐
Java EE对象拷贝工具Dozer是一款强大的数据映射库,它简化了在Java对象之间进行深度复制的过程。在软件开发中,特别是在业务层处理数据时,我们经常需要将一个对象的属性值复制到另一个对象中,Dozer提供了一个优雅...
对象属性值的复制工具类 1.全复制 2.部分复制 3.部分不复制
Java CopyUtil工具类,可以进行对象的深copy,比如:对象里面包含对象,对象里面包含Map,List,Set...等复杂类型的属性都可以copy,copy后的对象与原有对象没有联系,即改变原有对象内容,不会改变copy后的对象里面的...
拷贝Javascript对象复制工具用于复制,克隆和合并对象的通用工具集。 节点使用情况: var jsoCopy = require ( 'jsocopy.js' ) // or 'jsocopy.min.ja' , jsoClone = require jsoCopy . clone , jsoMerge = require ...
用于两个domain对象的拷贝,支持字段自动覆盖,选择性覆盖,选择性字段拷贝,作用:当你有多个domain对象都需要生成另外的同一个domain对象的时候这个方法就很有用了,或许存在BUG,欢迎指出
excel多余对象清理工具/Excel瘦身小工具/Excel表格行列统计 有暴力删除(删除全部对象,不管是否有用)模式 有常规清理(目前仅支持删除AutoShape/图表、Textbox/文本框,共2种对象)模式 --这几种对象正常都不是...
- 当需要对多个对象进行复制时,可以使用上述的工具库,如ModelMapper的`map()`方法可以接受多个源对象和目标对象,一次完成多个对象的复制。 7. **指定复制类型** - 在某些场景下,我们可能需要将源对象的属性值...
4. **使用工具类或库**:例如,Apache Commons Lang库提供了`BeanUtils.copyProperties()`方法,可以方便地将一个对象的所有属性复制到另一个对象。这种方法简单易用,但需要注意的是,如果源对象和目标对象有属性...
对象复制工具,基于cglib BeanCopier 实现对实体对象、持久化对象、代理对象的克隆和复制, 避免重复克隆和复制,避免无限循环引用,(校验hashCode) 可指定实体对象和集合属性的克隆深度
在这个工具中,"CopyElements.dll"很可能包含了实现房间对象拷贝算法的代码,能够智能识别房间内的各种元素,然后进行精确复制和粘贴。 在实际操作中,用户可能首先需要加载"copyElements.addin"文件到他们的设计...
在Java编程中,对象之间的复制是一项常见的操作,特别是在数据传输、模型转换或者持久化存储等场景下。...而了解各种复制策略和工具,可以帮助我们更好地处理复杂的对象关系,提高程序的健壮性和效率。
BeanUtil.java,对象属性拷贝工具
克隆图章工具可以复制图像的一部分并将其粘贴到其他位置,覆盖不需要的对象。修复画笔则通过取样周围区域的像素来填补被移除对象留下的空白。内容感知填充是更为先进的技术,它会分析周围环境,生成与周围内容相匹配...
浅拷贝只会复制对象的顶层属性,而深拷贝会递归复制整个对象及其嵌套的对象或数组。 1. **浅拷贝**:当仅传递两个对象作为参数时,`jQuery.extend(target, source)`,`target` 对象将接收 `source` 的属性,但不会...
10. **对象拷贝工具类**:如BeanUtils,实现对象属性的深度或浅度复制,减少了手动编写复制代码的工作。 11. **编码解码工具类**:如EncodingUtils,支持各种字符编码和解码,解决跨平台时的编码问题。 12. **正则...
这个“文件批量拷贝、剪切小工具源码-C#”就是为了解决这类问题而设计的。C#是一种强大的面向对象的编程语言,由微软公司开发,广泛应用于Windows平台上的应用开发,包括桌面应用、Web应用以及游戏开发等。 在这个...
在Java编程中,将JSON对象转换为Java Bean对象是一个常见的任务,特别是在处理Web服务或API交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,而Java Bean是符合特定规范的Java类,通常用于...
对象属性值映射/拷贝工具。不需要创建映射规则,不要求对象类型一致,适用于简单直接的拷贝操作,可以全属性拷贝,指定属性拷贝,排除指定的属性。拷贝包含 10 个属性的对象 10 万次,耗时 4.x 秒(普通开发机)。
AutoCad对象对齐,均布对象工具,包括左对齐、居中对齐,右对其,上对其、下对齐等6种对其方式,此外还有指定点对其,指定对象对齐,均布工具有垂直均布、水平均布等8种均布方式,还包括指定间距均布,制定范围均布...
在Java编程中,深度拷贝和浅拷贝是两种重要的对象复制方式,它们涉及到对象的内存管理和内存结构的复制。本篇文章将详细讲解如何利用Java的反射机制实现深度拷贝,以及这种方式的优点和注意事项。 首先,理解深度...