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


3.2 ObjectInputStream.GetField クラス

ObjectInputStream.GetField は、直列化可能フィールドの値を取得するための API を提供します。ストリームのプロトコルは、defaultReadObject が使うプロトコルと同じです。readFields の使用による直列化可能フィールドへのアクセスでは、ストリームの形式は変更されずに、値にアクセスするための代わりの API が提供されるだけです。この API は、クラスの各名前付き直列化可能フィールドに対し、対応する非 transient および非 static フィールドを必要としません。直列化可能フィールドは、serialPersistentFields を使って宣言されたフィールドであるか、あるいはそのようなフィールドが宣言されていない場合は、オブジェクトの非 transient および非 static フィールドです。ストリームの読み込み時に利用できる直列化可能フィールドは、オブジェクトの直列化時にストリームに書き込まれたフィールドです。ストリームを書き込むクラスのバージョンが異なる場合は、すべてのフィールドが現在のクラスの直列化可能フィールドに対応するわけではありません。利用可能なフィールドは、GetField オブジェクトの ObjectStreamClass から取得できます。

getObjectStreamClass メソッドは、ストリーム内のクラスを表す ObjectStreamClass オブジェクトを返します。これには、直列化可能フィールドの一覧が含まれています。

ストリーム内にフィールドが存在しない場合は、defaulted メソッドが true を返します。要求されたフィールドが現在のクラスの直列化可能フィールドでない場合は、IllegalArgumentException がスローされます。

get メソッドは、指定された直列化可能フィールドをストリームから返します。背後のストリームが例外をスローした場合は、入出力例外がスローされます。現在のクラスの直列化可能フィールドの名前および型に、名前または型が一致しない場合は、IllegalArgumentException がスローされます。ストリームのそのフィールドに明示的な値が含まれていない場合は、デフォルトの値が返されます。



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