目次 | 前の項目 | 次の項目 | Java オブジェクト直列化仕様 |
Serializable オブジェクトの場合、writeObject
メソッドによって、クラスがそれ自身のフィールドの直列化を制御することができます。そのシグニチャーを次に示します。private void writeObject(ObjectOutputStream stream) throws IOException;Serializable オブジェクトの各サブクラスは、自らのwriteObject
メソッドを定義することができます。クラスにこのメソッドが実装されていなければ、defaultWriteObject
によって与えられるデフォルトの直列化が使用されます。実装されていれば、そのクラスは、それ自身のフィールドだけに責任があります。 そのスーパータイプやサブタイプのフィールドの責任はありません。クラスの
writeObject
メソッドは、実装されている場合、そのクラスの状態を保管する責任があります。defaultWriteObject
メソッドをまず呼び出してからでないと、対応するreadObject
によって、そのオブジェクトの状態を復元するために必要になる任意指定のデータを書き込むことはできません。この任意指定データの形式、構造体、バージョン管理の責任のすべては、そのクラスにあります。