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


1.7 クラスの直列化可能フィールドへのアクセス

直列化により、ストリーム内の直列化可能フィールドにアクセスするための 2 つの機構が提供されます。

Serializable インタフェースを実装し、それ以上のカスタマイズを行わないオブジェクトの読み込みまたは書き込みを行う場合は、デフォルトの機構が自動的に使われます。直列化可能フィールドは、クラスの対応するフィールドにマッピングされ、値はそれらのフィールドからストリームに書き込まれるか、または読み込まれてそれぞれのフィールドに割り当てられます。クラスが writeObject および readObject メソッドを提供する場合は、defaultWriteObject および defaultReadObject を呼び出すことによって、デフォルトの機構が呼び出されます。writeObject および readObject メソッドが実装される場合は、直列化可能フィールドの値が書き込まれる前、または読み込まれたあとに、クラスがそれらの値を修正できます。

デフォルトの機構を使用できない場合は、直列化可能クラスは、ObjectOutputStreamputFields メソッドを使って、直列化可能フィールドの値をストリームに配置できます。ObjectOutputStreamwriteFields メソッドは、値を正しい順序で配置してから、直列化の既存のプロトコルを使ってストリームにそれらの値を書き込みます。同様に、ObjectInputStreamreadFields メソッドは、ストリームから値を読み込み、クラスが名前で (かつ任意の順序で) それらの値を取得できるようにします。直列化可能フィールド API の詳細は、「2.2 ObjectOutputStream.PutField クラス」および「3.2 ObjectInputStream.GetField クラス」を参照してください。



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