JavaTM 2 Platform
Std. Ed. v1.3

java.io
インタフェース Externalizable

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

public interface Externalizable
extends Serializable

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.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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.