モジュール java.base
パッケージ java.io

インタフェースExternalizable

すべてのスーパー・インタフェース:
Serializable
既知のすべてのサブインタフェース:
RemoteRef, ServerRef
既知のすべての実装クラス:
DataFlavor, 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メソッドによって代替オブジェクトを指定できます。
導入されたバージョン:
1.1
関連項目: