写了个类,implements Serializable支持序列化,在使用中把该类的对象序列化到文件中。然后在适当的时候读取该文件反序列化来获取该类对象。
疑问是:假如类中增加或删除了一些属性,即类结构变了。是否还能反序列化成功。该如何解决

解决方案 »

  1.   

    楼主可否说下你为什么会疑问是否还能Deserializable的原因么?我觉得还可以Deserializable,但是这时取回的对象可能无法使用,因为在序列化过程中,写入的是原始对象的一个copy,仅改变类结构,而没改类名的话,应该还是可以按照原先的型别将对象取回,但是如果在使用取回的对象的时候,可能会发生异常。以上是我个人理解,不正之处请指正。
      

  2.   

    或许可以。
    deserialize过程中reflector应该是把文件中字段与当前类字段一一对应起来,找不到的忽略,当然也可能直接抛出异常。
      

  3.   

    你的类有这个吗?
    /**
        * The class fingerprint that is set to indicate
        * serialization compatibility with a previous
        * version of the class.
        */
        static final long serialVersionUID = -3617482732056931635L;
    有了基本可以,你再查下注意事项
      

  4.   

    序列化\反序列化 听说是RMI时候用的?
    学习中...
      

  5.   

    谢谢zhmt(孜风) 
    正是这个