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


4.4 ObjectStreamField クラス

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 メソッドは、直列化可能フィールドの名前を返します。

getType メソッドは、フィールドの型を返します。

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



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