java对象克隆简单实现(可多级克隆)
来源:互联网 发布:美国大数据上市公司 编辑:程序博客网 时间:2024/05/16 06:10
1.为什么需要克隆
在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。在Java语言中,用简单的赋值语句是不能满足这种需求的,要满足这种需求有很多途径
2.工具类BeanUtil
public abstract class BeanUtil {
@SuppressWarnings(“unchecked”)
public static T cloneTo(T src) throws RuntimeException {
ByteArrayOutputStream memoryBuffer = new ByteArrayOutputStream();
ObjectOutputStream out = null;
ObjectInputStream in = null;
T dist = null;
try {
out = new ObjectOutputStream(memoryBuffer);
out.writeObject(src);
out.flush();
in = new ObjectInputStream(new ByteArrayInputStream(
memoryBuffer.toByteArray()));
dist = (T) in.readObject();
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (out != null)
try {
out.close();
out = null;
} catch (IOException e) {
throw new RuntimeException(e);
}
if (in != null)
try {
in.close();
in = null;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return dist;
}
}
3.用法:
Test src= new Test();//要克隆的对象
Test dist = BeanUtil.cloneTo(src);
- java对象克隆简单实现(可多级克隆)
- java 实现对象克隆
- Java对象克隆方法(浅克隆、深克隆)
- Java对象克隆方法(浅克隆、深克隆)
- java 实现对象的克隆
- 构建可克隆的对象(icloneable)
- java克隆 对象(复制)
- java对象 深度克隆(不实现Cloneable接口)和浅度克隆
- java对象 深度克隆(不实现Cloneable接口)和浅度克隆
- Java(对象的深克隆和浅克隆)
- java 引用数据类型实现 对象的克隆
- 实现对象克隆
- 实现对象的克隆
- 最简单的java 克隆实现
- java克隆对象
- java 中克隆对象
- java中的对象克隆
- 浅谈java 对象克隆
- C/C++ sort函数的用法
- Linux vmstat命令实战详解
- python中文编码的问题
- ubuntu配置静态ip地址
- 使用eclipse for c++的一个报错问题
- java对象克隆简单实现(可多级克隆)
- Linux的TTY驱动分析
- Linux的i2c驱动分析
- Linux的spi驱动分析
- Linux的USB驱动分析
- Linux的input子系统分析
- Linux的IRQ中断子系统分析
- Linux的Graphics子系统分析
- wifi增强