public class CloneUtil {private CloneUtil() {
throw new AssertionError();
}public static T clone(T object) throws IOException,
ClassNotFoundException {
// 说明:调用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();
}
}
【utils|对象拷贝工具类(深拷贝)】