|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Externalizable インスタンスのクラスのアイデンティティが直列化ストリームに書き込まれるだけで、そのインスタンスの内容を保存および格納するのはクラスの責任です。
クラスは、Externalizable インタフェースの writeExternal メソッドと readExternal メソッドを実装することによって、オブジェクトとそのスーパータイプのストリームの形式と内容を十分に制御できるようになります。これらのメソッドは明示的にスーパータイプと連携して、その状態を保存しなければなりません。これらのメソッドは、writeObject メソッドと readObject メソッドのカスタマイズされた実装よりも優先されます。
Serialization オブジェクトは、Serializable インタフェースと Externalizable インタフェースを使います。オブジェクト持続性の機構も、そうしたインタフェースを使うことができます。格納される各オブジェクトは、Externalizable インタフェースのためにテストされます。オブジェクトが Externalizable をサポートする場合、writeExternal メソッドが呼び出されます。オブジェクトが Externalizable インタフェースをサポートせず、Serializable インタフェースを実装する場合、オブジェクトは ObjectOutputStream を使って保存されます。
Externalizable オブジェクトが再構築されると、引数なしの public コンストラクタを使ってインスタンスが生成され、readExternal メソッドが呼び出されます。直列化可能オブジェクトを復元するには、ObjectInputStream から読み込みます。
Externalizable のインスタンスは、直列化可能インタフェースに記載されている writeReplace メソッドと readResolve メソッドによって代替オブジェクトを指定できます。
ObjectOutputStream
,
ObjectInputStream
,
ObjectOutput
,
ObjectInput
,
Serializable
メソッドの概要 | |
void |
readExternal(ObjectInput in)
オブジェクトが実装している readExternal メソッドは、DataInput インタフェースのメソッド (プリミティブ型の場合) および ObjectInput インタフェースの readObject メソッド (オブジェクト、文字列、配列の場合) を呼び出すことにより、オブジェクトの内容を復元します。 |
void |
writeExternal(ObjectOutput out)
オブジェクトが実装している writeExternal メソッドは、DataOutput インタフェースのメソッド (プリミティブ型の場合) および ObjectOutput インタフェースの writeObject メソッド (オブジェクト、文字列、配列の場合) を呼び出して、オブジェクトの内容を保存します。 |
メソッドの詳細 |
public void writeExternal(ObjectOutput out) throws IOException
out
- オブジェクトを書き込むストリームIOException
- 発生する可能性があるすべての入出力例外public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
in
- オブジェクトを復元するためのデータ読み取り元のストリームIOException
- 入出力エラーが発生した場合ClassNotFoundException
- 復元しようとしてるオブジェクトに対応するクラスが見つからない場合
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.