我把一个包含有其他对象句柄的对象序列化保存到文件里,
从文件恢复的时候对象里的句柄没指向先前的对象了,
这是为什么呢,有什么办法解决吗 ? 高手指点一下,谢谢了!

解决方案 »

  1.   

    举例说明:
    假设对象A句柄放在地址 0xABCDABCD下次序列化时,能否保证对象A还在 地址0xABCDABCD中么?显然不能!
    解决办法是
    用hash表〈int,int〉
    为每个对象创建一个表映射
    读取的时候,
    发现句柄地址0xABCDABCD 时
    那么从hash表中得到0xABCDABCD元素,
    如果没有,说明出错(注意,这种方式是深度优先,不同于广度优先)
    否则,把该句柄复制给当前变量我可能描述的不太清楚。
      

  2.   

    $ zz╭ ╮╭ ﹌╮.       $
    $   z(o-.-o)(o-.-o) .      $
    $ ┏~﹊︸ ̄~﹊︸ ̄~┓      $
    $ IT者-IT开发者的网站--    $
    $ 10万篇技术资料--天天更新 $
    $ -----www.itzhe.cn-----   $
      

  3.   

    可以继承clonable接口,重写clone()方法.
      

  4.   

    哦,这样,用writeObject/readObject不行吗?也需要调用成员的writeObject/readObject