JavaTM Platform
Standard Ed. 6

java.io
インタフェース Externalizable

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

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

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

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

readExternal

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

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

JavaTM Platform
Standard Ed. 6

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

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。