Java对象序列化-如何添加成员变量?

标签 java serialization object-serialization

我有一个可以读取和写入磁盘的对象数组。但现在我想向我的类添加一个成员变量。如果我添加成员变量,我将收到类不兼容错误,并且将无法读取序列化对象。有没有一种方法可以修改用于序列化的类的成员变量,而不会失去读取持久对象的能力......或者有一种简单的方法将持久对象转换为新类?

最佳答案

This post从 SO 应该可以回答你的问题。它甚至解释了如何查找编译器自动创建的串行版本(如果您未指定)(在引用页面中查找 serialver)。老文章仍然很有趣...... 简而言之,对于不耐烦的人:

  • 如果序列版本不改变,序列化会自动处理新的或删除的成员
  • 如果您没有指定,IDE 或 JDK 的 serialver 工具可以为您提供编译器自动生成的串行版本

所以你只需要找到这个serialversion,添加魔术字段staticfinallongserialVersionUID = xx,并且因为你只添加一个成员变量,所以一切都应该没问题。

(引用的帖子是谷歌针对java序列化多个版本的第一个答案)

关于Java对象序列化-如何添加成员变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23522228/

相关文章:

python - 将 Appengine 数据存储区中的 ReferenceProperty 序列化为 JSON

Java 套接字 : How to send and serialize object between multiple applications

c++ - QDataStream 无法序列化数据

java - 导入 keystore 以签署小程序

java - 多个平台,一个 JDK 安装

c# - 序列化字典<string, object>

asp.net-core - 使用 .Net Core API 进行元组序列化

不可序列化第三方类的Java序列化

java - 抽象类的对象是匿名内部类吗?

Java - 如何检查用户名是否已存在于 MySQL 表中