java - 我可以向序列化对象的类添加字段吗?

标签 java serialization

我有一个员工类别:

class Employee implements Serializable{
    int empId;
    String empName;
    double salary;
}

该员工类的一个对象被序列化并存储在某个文件中,例如employee.ser

我想在现有员工类别中再添加一个字段。现在我的员工类别将是这样的

class Employee implements Serializable{
    int empId;
    String empName;
    double salary;
    String state="abc";
}

是否可以反序列化旧对象,使其具有状态的默认值?

如果可以的话,如何实现?

最佳答案

是的。您可以添加或删除字段。请参阅Object Versioning chapter of the Object Serialization Specification 。确保保持 serialVersionUID 相同的值。但是,应用默认值取决于您,因为反序列化时不会运行构造函数或初始化代码。

关于java - 我可以向序列化对象的类添加字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37966330/

相关文章:

java - 如何使用 Jackson 的@JsonIdentityInfo 进行有向图的反序列化?

java - 与 Java : How to import an arbitrary . csv 文件中的文件实例函数混淆到 mysql 而不是特定文件?

java - 为什么 Java 中的字符数组接受整数值?

c++序列化包含字符串和指向另一个对象的指针的对象

java - 类内部的序列化

c# - 在 C# 中序列化对象的一部分

c - 在任何平台上使用 ANSI C 保存和加载数据

Java:我在从另一个类连接到数据库时遇到问题

java - 将文件路径字符串从 jsp 传递到 java servlet

java - 在Java中的类内部或外部构建复杂对象?