代码之家  ›  专栏  ›  技术社区  ›  David Parks

要初始化一个瞬态字段,最简单的解决方案是什么

  •  28
  • David Parks  · 技术社区  · 14 年前
    class MyClass implements Serializable {
      transient int myTransient;
      //Other variables
    }
    

    当我还原这个类时,我想初始化 myTransient 手动,否则我只想使用默认序列化。

    我怎么能注射 init() 方法进入对象还原进程,而不重新写入整个序列化机制 Externalizable 会让我做吗?

    1 回复  |  直到 14 年前
        1
  •  42
  •   axtavt    14 年前

    实施 readObject()

    private void readObject(java.io.ObjectInputStream in)
        throws IOException, ClassNotFoundException {
        in.defaultReadObject();
        myTransient = ...;
    }
    

    来自javadoc:

    私有void readObject(java.io.ObjectInputStream-in) 抛出IOException,ClassNotFoundException;

    另见: