import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class DeepCopyBean implements Serializable {
private static final long serialVersionUID = 1L;
private String objectField;
private int primitiveField;
public String getObjectField() {
return objectField;
}
public void setObjectField(String objectField) {
this.objectField = objectField;
}
public int getPrimitiveField() {
return primitiveField;
}
public void setPrimitiveField(int primitiveField) {
this.primitiveField = primitiveField;
}
/**
* 深度拷贝
* @return
*/
public DeepCopyBean deepCopy() {
try {
ByteArrayOutputStream buf = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(buf);
out.writeObject(this);
ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(buf.toByteArray()));
return (DeepCopyBean)in.readObject();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
}
分享到:
相关推荐
在Java编程中,深度拷贝和浅拷贝是两种重要的对象复制方式,它们涉及到对象的内存管理和内存结构的复制。本篇文章将详细讲解如何利用Java的反射机制实现深度拷贝,以及这种方式的优点和注意事项。 首先,理解深度...
今天上班在班车上和一个同事讨论有关C#拷贝效率的问题,聊到了多种深度拷贝方法,其中就提到了一种Lambda表达式拷贝的方法,这位同事说这种深度拷贝快是快但是如果对象里面再嵌入对象就不能深度拷贝了,只进行浅拷贝...
在编程领域,特别是使用.NET框架的C#语言中,"深度拷贝"是一个重要的概念,主要涉及对象复制。本文将详细解析"深度拷贝"的概念、实现方式以及如何在C#中实现一个自定义类的深度拷贝。 深度拷贝是指创建一个新对象,...
一、List对象中的T是值类型的情况(int 类型等) 对于值类型的List直接用以下方法就可以复制: List<T> oldList = new List(); oldList.Add(..); List<T> newList = new List(oldList); 二、List对象中的T是引用...
在C#编程中,深度拷贝是一个重要的概念,尤其是在处理复杂数据结构时。深度拷贝是指创建一个新对象,不仅复制原始对象的属性,还复制了嵌套对象的引用,确保新旧对象之间的独立性。本文将探讨C#中List对象的深度拷贝...
2. 使用Lodash库的`_.cloneDeep`方法:Lodash是一个广泛使用的JavaScript实用工具库,提供了许多便捷的工具函数,其中`_.cloneDeep`能够实现数组和对象的深度拷贝,包括循环引用的情况,是处理复杂数据结构拷贝的...
一个简易的java文档类copy代码,入门级,自己刚刚开始学习java,用于分享和记录。
在给定的标题和描述中,我们关注的是如何利用反射机制来实现对象的深度拷贝。深度拷贝是指创建一个与原对象完全独立的新对象,包括所有嵌套对象的副本。以下将详细解释如何通过反射和序列化来实现这一目标。 首先,...
为解决上述问题,开发者可以寻找一些现成的深度拷贝库,比如lodash的_.cloneDeep()方法,这些库已经封装好了深度拷贝的逻辑,并且考虑了各种边界情况和性能优化。 总之,JS深度拷贝是一种常见的编程技巧,特别是在...
在JavaScript中,深度拷贝和广度优先遍历是两种重要的编程概念,它们在处理复杂数据结构时尤其有用。本文将详细讲解这两种方法,并通过实际的JavaScript代码展示如何实现对象的深度拷贝。 首先,我们要理解什么是...
JavaScript中的深度拷贝是编程实践中常见且重要的概念,特别是在处理复杂的数据结构如对象和数组时。深度拷贝意味着创建一个新对象,这个新对象与原始对象具有相同的属性和值,而且如果原始对象包含嵌套的对象或数组...
如果修改`a`内部列表,`b`也会被影响,除非进行深度拷贝。 **深拷贝**: 深拷贝是通过`deepcopy()`方法实现的,它不仅创建一个新的对象,而且递归地复制所有容器类型的成员,确保每个成员都是全新的对象,与原对象...
Android andlua androlua lua实战工程
这篇博客将探讨如何在Java中对List进行深度复制。 首先,我们来理解一下什么是浅复制和深复制。在Java中,当我们使用`clone()`方法或`System.arraycopy()`进行复制时,通常得到的是浅复制的结果。这意味着原始对象...
尽管它可以用来拷贝数组,但它并不会进行深度拷贝,当数组元素是复杂类型(如对象)时,拷贝的仍然是原始对象的引用。 2. `Object.assign()` `Object.assign()`用于将源对象的属性复制到目标对象上。如果源对象有...
深度拷贝可以通过序列化和反序列化来实现,也可以基于reflect包的反射机制完成。我对于这两种方式实现深拷贝做了性能基准测试。 下面是对比反射(github.com/mohae/deepcopy)与序列化(gob)所用的基准测试脚本 ...