继承中的Serializable问题

为了实现深度克隆,一个最简单的办法就是让需要克隆的类全部实现Serializable,然后:
            ByteArrayOutputStream byteArrOs = new ByteArrayOutputStream();
            ObjectOutputStream objOs = new ObjectOutputStream(byteArrOs);
            objOs.writeObject(this);

            ByteArrayInputStream byteArrIs = new ByteArrayInputStream(byteArrOs.toByteArray());
            ObjectInputStream objIs = new ObjectInputStream(byteArrIs);
            Object deepCopy = objIs.readObject();
在实现的时候遇到一个问题,就是我的this的类的父类忘记增加implements Serializable,导致克隆出来的对象丢失了父类中的信息,解决方法当然也很简单了,在父类加上implements Serializable就行了。
所以用这个方式的时候一定要小心,就是你需要深度克隆的对象相关的所有对象都要implements Serializable,否则那部分不会被克隆,而且没有任何异常。那些类的子类也需要加上。



作者: Cherami
原载: 继承中的Serializable问题
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。

日志评价

1 Star2 Stars3 Stars4 Stars5 Stars (暂无评价) --点击星星直接投票
Loading ... Loading ...


相关日志

  • 暂时没有相关日志。


随机日志



添加到网摘

[del.icio.us]  [新浪 VIVI]  [365key]  [YouNote]  [博采中心]  [Poco]  [SOHU狐摘]  [天极网摘]  [和讯网摘]
喜欢这个插件?

当前日志信息