实现思想: 对象-〉序列化-〉二进制流-〉反序列化-〉新的对象
DotNet 代码:
public static Object DeepClone(Object srcObject)
{
//定义内存流
MemoryStream ms=new MemoryStream();
//定义二进制流
IFormatter bf=new BinaryFormatter();
//序列化
bf.Serialize(ms,srcObject);
//重置指针到起始位置,以备反序列化
ms.Position=0;
//返回反序列化的深克隆对象
return bf.Deserialize(ms);
}
Java 代码:
public static Object deepClone(Object srcObject) throws IOException,
ClassNotFoundException {
ByteArrayOutputStream bo = new ByteArrayOutputStream();
ObjectOutputStream oo = new ObjectOutputStream(bo);
oo.writeObject(srcObject);
ByteArrayInputStream bi = new ByteArrayInputStream(bo.toByteArray());
ObjectInputStream oi = new ObjectInputStream(bi);
return oi.readObject();
}