目次 | 前の項目 | 次の項目 Java オブジェクト直列化仕様


A.7 外部化可能オブジェクトの上書きの防止

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();
        }
    }



目次 | 前の項目 | 次の項目
Copyright © 1997-2001 Sun Microsystems, Inc. All Rights Reserved.