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


4.1 ObjectStreamClass クラス

ObjectStreamClass は、直列化ストリームに保管されるクラスの情報を返します。その記述子には、そのクラスの完全修飾名とその直列化バージョン UID が示されます。SerialVersionUID は、このクラスがストリームを書き込んだり、読み込んだりできる固有のオリジナルクラスバージョンを特定します。

package java.io;

public class ObjectStreamClass
{
    public static ObjectStreamClass lookup(Class cl);

    public String getName();

    public Class forClass();

    public ObjectStreamField[] getFields();

    public long getSerialVersionUID();

    public String toString();
}
lookup メソッドは、Virtual Machine の指定されたクラスに対する ObjectStreamClass 記述子を返します。このクラスに serialVersionUID が定義されていれば、それがこのクラスから取り出されます。定義されていなければ、Virtual Machine にあるこのクラスの定義から計算されます。指定されたクラスが Serializable でも Externalizable でもない場合、null が返されます。

getName メソッドは、そのクラスの完全修飾名を返します。このクラス名はストリームに保管され、そのクラスがロードされるときに使われます。

forClass メソッドは、ObjectInputStream.resolveClass メソッドがローカルの Virtual Machine 内に Class を検出した場合に、その Class を返します。検出できなかった場合は、null を返します。

getFields メソッドは、このクラスの直列化可能フィールドを表す ObjectStreamField オブジェクトの配列を返します。

getSerialVersionUID メソッドは、このクラスの serialVersionUID を返します。「4.4 ストリーム固有識別子」を参照してください。このクラスによって定義されていない場合は、米国連邦情報局によって定義された Secure Hash Algorithm (SHA) を使って、クラスの名前、インタフェース、メソッド、フィールドから計算された値が返されます。

toString メソッドは、クラス記述子を表示可能な表現で返します。これには、クラスの名前と serialVersionUID などが含まれます。

ObjectStreamClass インスタンスがストリームに書き込まれるとき、クラス名および serialVersionUID、フラグ、およびフィールド数が書き込まれます。クラスによっては、その他の情報が書き込まれることもあります。



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