interview_internal_reference
interview_internal_reference copied to clipboard
5.2.0 浅复制和深复制?怎样实现深复制
参考代码太简单了,比如遇到循环引用对象怎么办?
嗯,可以把你的答案贡献出来。
/**
* This method makes a "deep clone" of any object it is given.
*
* @param object origin target should implement Serializable
*/
public static Object deepClone(Object object) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(object);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bais);
return ois.readObject();
}
catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
@nttd-junchu 对的,可以通过序列化实现深复制