目次 | 前の項目 | 次の項目 | Java オブジェクト直列化仕様 |
Externalizable
インタフェースを実装するオブジェクトは、public のreadExternal
メソッドを提供しなければなりません。このメソッドは public であるため、オブジェクトにアクセス権のあるユーザによって任意で呼び出されます。オブジェクトの内部状態を複数の (不正な)readExternal
の呼び出しによって上書きされないようにするには、実装の際にチェックを追加して、適切な場合にだけ内部の値が設定されるようにします。public synchronized void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { if (! initialized) { initialized = true; // read in and set field values ... } else { throw new IllegalStateException(); } }