目次 | 前の項目 | 次の項目 | 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
メソッドは、名前、および型とともに、プリント可能な表現を返します。