一、深拷贝
public class CloneUtil {
/**
* 复制
*
* @return
*/
public static <T extends Serializable> T clone(T object) {
try {
// 说明:调用ByteArrayOutputStream或ByteArrayInputStream对象的close方法没有任何意义
// 这两个基于内存的流只要垃圾回收器清理对象就能够释放资源,这一点不同于对外资源(如文件流)的释放
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(object);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bais);
return (T) ois.readObject();
} catch (Exception e) {
}
return null;
}
}
本文介绍了一种使用序列化方式实现Java中对象深拷贝的方法。通过将对象写入字节数组流再读取的方式,确保了源对象与其拷贝之间的独立性。
809

被折叠的 条评论
为什么被折叠?



