Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从类中删除字段并更新现有序列化文件_Java_Serialization_Deserialization - Fatal编程技术网

Java 从类中删除字段并更新现有序列化文件

Java 从类中删除字段并更新现有序列化文件,java,serialization,deserialization,Java,Serialization,Deserialization,我已经有一个包含类X实例的序列化文件。 我现在决定通过删除一个不再需要的字段来修改X类的代码。相应地更新现有序列化文件的最佳方法是什么 到目前为止,我想到的唯一解决办法是: 创建与X相同但没有不需要的字段的临时类Y 从文件中反序列化X实例,构造其等效的Y实例,并将其序列化为新文件 从类X的代码中删除不需要的字段,然后反向执行步骤2 这是一个可怕的混乱(尤其是因为这种情况对我来说很常见)。还有更好的办法吗 谢谢 您不需要对文件执行任何操作。已删除的字段数据将被反序列化到已修改的类而忽略。只需确保不

我已经有一个包含类X实例的序列化文件。 我现在决定通过删除一个不再需要的字段来修改X类的代码。相应地更新现有序列化文件的最佳方法是什么

到目前为止,我想到的唯一解决办法是:

  • 创建与X相同但没有不需要的字段的临时类Y
  • 从文件中反序列化X实例,构造其等效的Y实例,并将其序列化为新文件
  • 从类X的代码中删除不需要的字段,然后反向执行步骤2
  • 这是一个可怕的混乱(尤其是因为这种情况对我来说很常见)。还有更好的办法吗


    谢谢

    您不需要对文件执行任何操作。已删除的字段数据将被反序列化到已修改的类而忽略。只需确保不会干扰
    serialVersionUID
    的值,如果尚未提供值,请在进行更改之前,使用
    serialver
    工具的输出立即进行更改


    您需要仔细查看该文件。

    您不需要对该文件执行任何操作。已删除的字段数据将被反序列化到已修改的类而忽略。只需确保不会干扰
    serialVersionUID
    的值,如果尚未提供值,请在进行更改之前,使用
    serialver
    工具的输出立即进行更改


    你需要好好看一看。

    这方面的措辞很糟糕。当字段删除不兼容时,它会将其列为不兼容。对于应用程序来说,这可能是不兼容的,但是通过序列化可以很好地处理。在这方面,它的措辞很糟糕。当字段删除不兼容时,它会将其列为不兼容。对于应用程序来说,这可能是不兼容的,但是可以通过序列化来处理。