首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

施用序列化实现java 对象的深拷贝

2012-12-20 
使用序列化实现java 对象的深拷贝clone是Object类的方法,如果对象中的所有属性都属于数值或者基本类型,这

使用序列化实现java 对象的深拷贝

clone是Object类的方法,如果对象中的所有属性都属于数值或者基本类型,这样拷贝没有问题的,但是,如果对象中包含子对象的引用,那么拷贝的结果就是两个对象引用同一个子对象。 但是可以通过序列化的方式来实现对象的深拷贝

?

public Serializable deepCopy() throws IOException, ClassNotFoundException{
??ByteArrayOutputStream baos = new ByteArrayOutputStream();
??ObjectOutputStream oos = new ObjectOutputStream(baos);
??oos.writeObject(this);
??oos.close();
??baos.close();
??ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
??ObjectInputStream ois = new ObjectInputStream(bais);
??Serializable obj =? (Serializable) ois.readObject();
??ois.close();
??bais.close();
??return obj;
?}


热点排行