对象拷贝工具类(深拷贝)

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,java,android)