以下の内容はhttps://anton0825.hatenablog.com/entry/2015/04/10/000000より取得しました。


デシリアライズした時にtransientなフィールドを初期化する

transientなフィールドがデシリアライズした時にnullになるのを避けるには、readObjectメソッドの中でフィールドを初期化すればいい。

private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
    in.defaultReadObject();
    handler = new Handler();
}

readObjectはSerializableで定義されてないし、privateだけどデシリアライズ時に呼ばれる。 ランタイムがリフレクションを使って呼び出してるんだろうけど、Javaでこんなことやるなんて珍しいな。。

参考:

http://www.ne.jp/asahi/hishidama/home/tech/java/serial.html




以上の内容はhttps://anton0825.hatenablog.com/entry/2015/04/10/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14