java 的深度clone,对于对象里面还包含其它对象可使用流克隆法


一般使用的clone()方法虽然可以实现深度克隆,
但是需要的克隆对象里有其他引用对象,这个引用对象还有引用对象
那么你重写clone()方法就非常的繁琐了
所以建议使用输入输出流进行克隆

/*
     * 复制对象obj,类似于值传递,非引用
     */
    public static Object cloneObject(Object obj) throws Exception{
           ByteArrayOutputStream  byteOut = new ByteArrayOutputStream();  
           ObjectOutputStream out = new ObjectOutputStream(byteOut);  
           out.writeObject(obj);         
           ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());  
           ObjectInputStream in =new ObjectInputStream(byteIn);        
           return in.readObject();
    }

你可能感兴趣的:(java 的深度clone,对于对象里面还包含其它对象可使用流克隆法)