Java序列化问题

Nar*_*rek 0 java serialization class

我想将我的问题改为以下内容:

我有一个HashMap对象,一个int.我想序列化到同一个文件并返回.我知道我应该按照与序列化相同的顺序进行反序列化.

请向我提供执行该操作的代码.

akf*_*akf 5

我根据您提供的信息做出假设,即基于最初序列化类与具有新字段的更新类之间的不兼容性而导致序列化问题.

如果您之前已经序列化了一个类而未指定a private static long serialVersionUID,则在尝试读取该文件时,添加新字段将导致InvalidClassException.

请注意,已经序列化先前版本之后简单地添加serialVersionUID 将不会产生兼容的类.您需要做的是重新生成原始serialVersionUID,获取该数字并将其应用于您的班级.

你必须采取的步骤:

  1. 删除新的int(现在)并编译
  2. 通过serialVer针对编译的类运行来生成原始的serialVersionUID
  3. 获取结果数字并将其分配给private static long serialVersionUID您应用于更新课程的数字
  4. 重新添加新的int.

完成这些步骤后,您应该可以反序列化原始步骤.

推荐阅读:我为什么要烦扰serialVersionUID(原文如此)