JavaTM 2
Platform
Std. Ed. v1.4.0

java.io
インタフェース Externalizable

すべてのスーパーインタフェース:
Serializable
既知のサブインタフェースの一覧:
RemoteRef, ServerRef
既知の実装クラスの一覧:
DataFlavor

public interface Externalizable
extends Serializable

Externalizable インスタンスでは、このクラスの識別情報だけが直列化ストリームに書き込まれます。Externalizable インスタンスの内容は、このクラスが保存および格納します。このクラスは、Externalizable インタフェースの writeExternal メソッドと readExternal メソッドを実装して、オブジェクトとそのスーパータイプのストリームの形式と内容をすべて制御します。これらのメソッドは明示的にスーパータイプと連携しながら、オブジェクトの状態を保存する必要があります。これらのメソッドは、writeObject メソッドと readObject メソッドのカスタマイズされた実装よりも優先されます。
Serialization オブジェクトは、Serializable インタフェースと Externalizable インタフェースを使います。オブジェクト持続性の機構も、そうしたインタフェースを使うことができます。格納される各オブジェクトは、Externalizable インタフェースのためにテストされます。オブジェクトが Externalizable をサポートする場合、writeExternal メソッドが呼び出されます。オブジェクトが Externalizable インタフェースをサポートせず、Serializable インタフェースを実装する場合、オブジェクトは ObjectOutputStream を使って保存されます。
Externalizable オブジェクトが再構築されると、引数なしの public コンストラクタを使ってインスタンスが生成され、readExternal メソッドが呼び出されます。直列化可能オブジェクトを復元するには、ObjectInputStream から読み込みます。
Externalizable のインスタンスは、直列化可能インタフェースに記載されている writeReplace メソッドと readResolve メソッドによって代替オブジェクトを指定できます。

導入されたバージョン:
JDK1.1
関連項目:
ObjectOutputStream, ObjectInputStream, ObjectOutput, ObjectInput, Serializable

メソッドの概要
 void readExternal(ObjectInput in)
          オブジェクトが実装している readExternal メソッドは、DataInput インタフェースのメソッド (プリミティブ型の場合) および ObjectInput インタフェースの readObject メソッド (オブジェクト、文字列、配列の場合) を呼び出すことにより、オブジェクトの内容を復元します。
 void writeExternal(ObjectOutput out)
          オブジェクトが実装している writeExternal メソッドは、DataOutput インタフェースのメソッド (プリミティブ型の場合) および ObjectOutput インタフェースの writeObject メソッド (オブジェクト、文字列、配列の場合) を呼び出して、オブジェクトの内容を保存します。
 

メソッドの詳細

writeExternal

public void writeExternal(ObjectOutput out)
                   throws IOException
オブジェクトが実装している writeExternal メソッドは、DataOutput インタフェースのメソッド (プリミティブ型の場合) および ObjectOutput インタフェースの writeObject メソッド (オブジェクト、文字列、配列の場合) を呼び出して、オブジェクトの内容を保存します。

パラメータ:
out - オブジェクトを書き込むストリーム
例外:
IOException - 発生する可能性があるすべての入出力例外

readExternal

public void readExternal(ObjectInput in)
                  throws IOException,
                         ClassNotFoundException
オブジェクトが実装している readExternal メソッドは、DataInput インタフェースのメソッド (プリミティブ型の場合) および ObjectInput インタフェースの readObject メソッド (オブジェクト、文字列、配列の場合) を呼び出すことにより、オブジェクトの内容を復元します。readExternal メソッドは、writeExternal メソッドで書き込んだときと同じシーケンス、同じ型によって値を読み込まなければなりません。

パラメータ:
in - オブジェクトを復元するためのデータ読み取り元のストリーム
例外:
IOException - 入出力エラーが発生した場合
ClassNotFoundException - 復元しようとしてるオブジェクトに対応するクラスが見つからない場合

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.