public
Object
deepClone(Object obj)
{
//将对象写到流里
ByteArrayOutoutStream
bo=
new
ByteArrayOutputStream();
ObjectOutputStream
oo=
new
ObjectOutputStream(bo);
oo.writeObject(obj
);
//从流里读出来
ByteArrayInputStream
bi=
new
ByteArrayInputStream(bo.toByteArray());
ObjectInputStream
oi=
new
ObjectInputStream(bi);
return
(oi.readObject());
}
===================================================================================
泛型版本:
@SuppressWarnings("unchecked")
private
static <T> T copy(T t) throws Exception {
ByteArrayOutputStream bo = new ByteArrayOutputStream();
ObjectOutputStream oo = new ObjectOutputStream(bo);
oo.writeObject(t);
ByteArrayInputStream bi = new ByteArrayInputStream(bo.toByteArray());
ObjectInputStream oi = new ObjectInputStream(bi);
return (T) (oi.readObject());
}