反序列化后如何自动执行方法?

2022-09-01 17:17:15

我有一个班级,它是.它表示一个图形对象,我希望它在序列化之前将其句柄恢复到状态。所有数据都存储在对象中,我只需要在适当的时候调用一个方法。我怎样才能实现它?这在Java中可能吗?FooSerializable

(我在一个 in 对象和其他一些地方都有我的 s - 这就是为什么我不想手动执行此操作。FooListBar


答案 1

在序列化和反序列化过程中需要特殊处理的类必须实现具有以下确切签名的特殊方法:

 private void readObject(java.io.ObjectInputStream in)
     throws IOException, ClassNotFoundException;

实现此方法,并调用 ,然后执行所需的任何自定义逻辑。in.defaultReadObject()

查看java.io.Serializable的文档以获取更多详细信息


答案 2