【问题标题】:How to automatically execute a method after deserialization?反序列化后如何自动执行方法?
【发布时间】:2010-07-27 11:49:11
【问题描述】:

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

(我的Foos 在Bar 对象中的List 和其他一些地方 - 这就是我不想手动执行此操作的原因。)

【问题讨论】:

    标签: java serialization


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 这对我帮助很大。希望这样的事情能在书中得到更多的教导。
    • 这只适用于java序列化程序,twitter kryo不会使用这个
    猜你喜欢
    • 2021-05-03
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多