commons-beanutils实现java深度克隆
第一步:创建工具类
直接使用commons-beanutils实现对象拷贝,引入jar
<dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.4</version>
</dependency>
第二步:创建工具类:BeanUtils
public class BeanUtils {/*** @param orig 源对象* @param dest 目标对象*/public static void copyProperties(final Object orig,final Object dest){try{org.apache.commons.beanutils.BeanUtils.copyProperties(dest, orig);}catch (Exception e){throw new RuntimeException(e.getMessage());}}/*** @Description:拷贝list元素对象,将origs中的元素信息,拷贝覆盖至dests中* @param origs 源list对象* @param dests 目标list对象* @param origsElementTpe 源list元素类型对象* @param destElementTpe 目标list元素类型对象* @param <T1> 源list元素类型* @param <T2> 目标list元素类型*/public static <T1,T2> void copyProperties(final List<T1> origs, final List<T2> dests, Class<T1> origsElementTpe, Class<T2> destElementTpe){if(origs==null||dests==null){return ;}if(dests.size()!=0){//防止目标对象被覆盖,要求必须长度为零throw new RuntimeException("目标对象存在值");}try{for (T1 orig: origs) {T2 t = destElementTpe.newInstance();dests.add(t);copyProperties(orig,t);}}catch (Exception e){throw new RuntimeException(e.getMessage());}}
}
commons-beanutils实现java深度克隆相关推荐
- java深度克隆_Java深入学习26:Java深度克隆
Java深入学习26:Java深度克隆 深克隆和浅克隆区别 浅克隆: 只copy对象引用,不copy对象本身.即对象地址不变,仍然只存在一个对象. 深克隆: 不仅拷贝对象本身,而且拷贝对象包含的引用指 ...
- Java深度克隆对象
关于对象的克隆,Java自带了一个clone()方法. 但是众所周知,这个clone()方法只是做浅层的对象复制,仅适用于对象属性是简单数据类型(int/long/float等)的场景.对于对象属性是 ...
- java深度克隆_浅析Java中clone()方法浅克隆与深度克隆
现在Clone已经不是一个新鲜词语了,伴随着"多莉"的产生这个词语确实很"火"过一阵子,在Java中也有这么一个概念,它可以让我们很方便的"制造&qu ...
- java深度克隆大数据_Java - 深拷贝技巧
先让我描述一下问题: 我在某Action(struts2.x)-A中写了一个功能P,以当前用户的某个标识F == 1时需要走这个功能,而且这个功能因某些原因已经侵入到了其他一些method中. 顺便一 ...
- java中的深度克隆浅克隆_了解Java中的可克隆接口
java中的深度克隆浅克隆 什么是对象克隆? 对象克隆是生成具有不同名称的对象的精确字段到字段副本的过程. 克隆的对象在内存中有自己的空间,可在其中复制原始对象的内容. 这就是为什么在克隆后更改原始对 ...
- java浅度克隆_java对象 深度克隆(不实现Cloneable接口)和浅度克隆
为什么需要克隆: 在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说 ...
- java中实现对象的深度克隆
1.什么是深度拷贝和浅拷贝 python中有深度拷贝(也可以叫深度克隆)和浅拷贝,同样在java中很多时候需要深度拷贝对象,所谓的深度拷贝对象指的就是对于对象的所用数据及其全部进行copy一份,变成两 ...
- Java对象的深度克隆
文章目录 前言 代码 后记 前言 日常写代码过程中我们需要对数据和对象等进行克隆,然而对引用类型必须要自己重写clone()方法,对于复杂的对象并不那么好写,而且每个对象都需要重写一次.这里我不重写c ...
- Java实现对象深度克隆
两种方式: 1). 实现Cloneable接口并重写Object类中的clone()方法: 2). 实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆 ...
- java递归深度克隆_递归方法实现深度克隆原理:遍历对象、数组直到里边都是基本数据类型,然后再去复制,就是深度拷贝。...
手写递归方法 //定义检测数据类型的功能函数 function checkedType(target) { return Object.prototype.toString.call(target). ...
最新文章
- webgl入门(2)-初识webgl和着色器
- 2019Mobicom 论文列表
- mybatis模糊查询sql
- 案例33:灭火器及其配置验收案例分析
- PHP设计模式——解释器模式
- TypeScript入门教程
- 欧姆龙编程软件(CXONE)使用教程
- Android音视频开发之ExoPlayer(二):播放列表常用的功能
- 如何提高芝麻信用分?解读芝麻信用是怎么做的
- 商务云PHP网络验证系统,易如意PHP网络验证系统1.3【开源】+调用模块源码
- Qt qmake LIBS的使用指南
- 常见设计模式实现、详解及在Spring中的应用
- OpenWrt/Lede 添加USB支持
- 【转】正则表达式高级学习技巧
- 阿里面试:分析为什么B+树更适合作为索引的结构以及索引原理
- 基于opencv的理想低通滤波器和巴特沃斯低通滤波器
- 聊聊互联网行业对35岁码农的偏见,以及大龄码农的破局之道
- Bean 的生命周期
- idea引入maven依赖飘红解决方法
- 孙悟空的师傅是谁(zz)
热门文章
- 28. PHP 文件上传
- 页面定时跳转的js和php的代码实现和页面定时刷新
- 移动WEB开发之Safari、QQ、UC、360浏览器的私有Meta属性
- 未能加载文件或程序集“System.Data.SQLite.DLL”或它的某一个依赖项
- Extjs 学习总结-Ext.define自定义类
- complexType
- linux kernel menuconfig【转载】
- 转载:iOS 8 自适应 Cell
- hdu1312---------------DFS模板(调用STL)
- Useful SQL script