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

mik*_*1aj 24 java serialization

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

(我有Foo一个Listin in Barobject,在其他地方 - 这就是我不想手动操作的原因.)

Boz*_*zho 36

在序列化和反序列化过程中需要特殊处理的类必须使用这些精确签名实现特殊方法:

 private void readObject(java.io.ObjectInputStream in)
     throws IOException, ClassNotFoundException;
Run Code Online (Sandbox Code Playgroud)

实现此方法,然后调用in.defaultReadObject(),然后执行您想要的任何自定义逻辑.

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

  • 这确实对我帮助很大。希望书本上能多教一些这样的东西。 (2认同)