| 目次 | 前の項目 | 次の項目 | Java オブジェクト直列化仕様 |
ObjectStreamFieldは、直列化可能クラスの直列化可能フィールドを表現します。クラスの直列化可能フィールドは、ObjectStreamClassから取得できます。特別な静的直列化可能フィールド (
serialPersistentFields) はObjectStreamFieldコンポーネントの配列であり、デフォルトの直列化可能フィールドのオーバーライドに使用されます。package java.io; public class ObjectStreamField implements Comparable { public ObjectStreamField(String fieldName, Class fieldType); public ObjectStreamField(String fieldName, Class fieldType, boolean unshared); public String getName(); public Class getType(); public String getTypeString(); public char getTypeCode(); public boolean isPrimitive(); public boolean isUnshared(); public int getOffset(); protected void setOffset(int offset); public int compareTo(Object obj); public String toString(); }ObjectStreamFieldオブジェクトは、クラスの直列化可能フィールドの指定、またはストリームに存在するフィールドの記述に使われます。そのコンストラクタは、表現するフィールドを記述する引数を受け取ります。引数には、フィールドの型を指定する文字列、フィールドのタイプを指定するClassオブジェクト、および、デフォルトの直列化/直列化復元が使用中の場合にフィールドの値を非共有オブジェクトとして読み書きする必要があるかどうかを示すbooleanフラグ (2 つの引数をとるコンストラクタでは暗黙的にfalse) があります (3.1 および 2.1 の各節でObjectInputStream.readUnsharedメソッドおよびObjectOutputStream.writeUnsharedメソッドの説明を参照)。
getNameメソッドは、直列化可能フィールドの名前を返します。
getTypeStringメソッドは、フィールドの型のシグニチャーを返します。
getTypeCodeメソッドは、フィールドの型の文字エンコーディングを返します (`B'はbyte、`C'はchar、`D'はdouble、`F'はfloat、`I'はint、`J'はlong、`L'非配列オブジェクト型、`S'はshort、`Z'はboolean、`[`は配列)。
isPrimitiveメソッドは、フィールドがプリミティブ型の場合はtrueを返し、それ以外の場合はfalseを返します。
isUnsharedメソッドは、フィールドの値を非共有オブジェクトとして書き込む必要がある場合はtrueを返し、それ以外の場合はfalseを返します。
getOffsetメソッドは、フィールドを定義するクラスのインスタンスデータ内でのフィールド値のオフセットを返します。
setOffsetメソッドは、getOffsetメソッドから返されたオフセット値をObjectStreamFieldサブクラスで変更できるようにします。
compareToメソッドは、ソートに使うためにObjectStreamFieldsを比較します。プリミティブフィールドは、非プリミティブフィールドよりも「小さい」順位にランク付けられます。同じ型のフィールドは、アルファベット順にランク付けられます。
toStringメソッドは、名前、および型とともに、プリント可能な表現を返します。