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

标签 java serialization

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

(我的 Foos 在 Bar 对象的 List 和其他一些地方 - 这就是我不想要的原因手动完成。)

最佳答案

Classes that require special handling during the serialization and deserialization process must implement special methods with these exact signatures:

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

实现这个方法,调用in.defaultReadObject(),然后做任何你想做的自定义逻辑。

查看 java.io.Serializable 的文档了解更多

关于java - 反序列化后如何自动执行方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3343277/

相关文章:

java - Wildfly 间歇性地暂停我的网络应用程序

java - 捕获 Java 错误

c# - 在 WCF 中使用 [DataContract] 而不是 [Serializable] 有什么优势

Java int 和 char 之间的隐式转换

java - 我们什么时候应该使用 Java 的 Thread over Executor?

java - 我是否应该创建一个我永远不会实例化的父类(super class),只是为了转换不同的子类?

c# - .NET 8 IEnumerable 接口(interface)的序列化/反序列化

c++ - 在 C++ 中保存指向文件的指针

java - Jackson 序列化器 - 访问私有(private)属性

ruby-on-rails - Rails 中 DataMapper 对象的替代序列化