目次 | 前の項目 | 次の項目 Java オブジェクト直列化仕様
バージョン 5.0


変更履歴

2004 年 7 月 24 日 JavaTM 2 SDK, Standard Edition, v5.0 Beta 1 での変更

  • enum 定数の直列化のサポートを追加しました。
  • デフォルトの serialVersionUID 値の計算で使用されるクラス修飾子フラグの仕様を、「4.6 ストリーム固有識別子」に追加しました。

    2001 年 8 月 16 日 JavaTM 2 SDK, Standard Edition, v1.4 Beta 2 での変更

  • クラス定義メソッド readObjectNoData のサポートを追加しました。これは、クラス定義メソッド readObject で対応できない場合に直列化可能クラスのフィールドを初期化するために使用します。「3.5 readObjectNoData メソッド」および付録 A 「オブジェクト直列化におけるセキュリティ」を参照してください。
  • 新しいメソッド ObjectOutputStream.writeUnshared および ObjectInputStream.readUnshared は、直列化復元されたオブジェクトへの一意参照を保証する機構を提供します。「2.1 ObjectOutputStream クラス」「3.1 ObjectInputStream クラス」、および付録 A 「オブジェクト直列化におけるセキュリティ」を参照してください。
  • ObjectOutputStream および ObjectInputStream の単一引数コンストラクタにおけるセキュリティチェックを文書化しました。「2.1 ObjectOutputStream クラス」および「3.1 ObjectInputStream クラス」を参照してください。
  • 「1.10 Serializable インタフェース」に、直列化での内部クラスの使用に対する警告を追加しました。
  • クラス定義の writeObject メソッドは、任意指定のデータを書き込む前に ObjectOutputStream.defaultWriteObject または writeFields を一度呼び出す必要があること、およびクラス定義の readObject メソッドは、任意指定のデータを読み込む前に ObjectInputStream.defaultReadObject または readFields を一度呼び出す必要があることを明示しました。「2.3 writeObject メソッド」および「3.4 readObject メソッド」を参照してください。
  • クラス定義の readObject メソッドまたは readExternal メソッドが利用可能なデータの範囲を超える読み取り操作を試行したときの ObjectInputStream の動作を明示しました。「3.4 readObject メソッド」および「3.6 readExternal メソッド」を参照してください。
  • 「フィールド記述子」形式で書き込まれる必要がある非プロキシクラス記述子フィールド型の文字列の説明を明示しました。「6.2 ストリーム要素」を参照してください。

    1999 年 7 月 30 日 JavaTM 2 SDK, Standard Edition, v1.3 Beta での変更

  • UTF エンコーディングで 65535 バイトを超える長さの String オブジェクトを記述する機能を追加しました。「6.2 ストリーム要素」を参照してください。
  • 新しいメソッドである ObjectOutputStream.writeClassDescriptor および ObjectInputStream.readClassDescriptor を使って、ObjectStreamClass クラス記述子の直列化表現をカスタマイズできます。「2.1 ObjectOutputStream クラス」および「3.1 ObjectInputStream クラス」を参照してください。
  • 付録 A「オブジェクト直列化におけるセキュリティ」に説明を追加しました。

    1998 年 9 月 30 日 JDKTM 1.2 Beta4 RC1 での変更

  • ドキュメントの訂正のみ

    1998 年 6 月 22 日 JDKTM 1.2 Beta4 での変更

  • JDKTM 1.2 java.io インタフェースの Replaceable および Resolvable を削除しました。
    インタフェースとしてのこれらのクラスへの参照は、いずれも java.io.Serializable に置き換える必要があります。直列化可能クラスが writeReplace および readResolve メソッドを定義する場合は、直列化はリフレクションを使ってこれらのメソッドを呼び出します。「2.5 writeReplace メソッド」および「3.7 readResolve メソッド」を参照してください。
  • 新しい javadoc タグ @serial@serialField、および @serialData で、Serializable クラスの直列化されたフォームを文書化する手段を提供します。javadoc は、これらのタグの内容を基にして直列化の仕様を生成します。「1.6 クラスの直列化可能なフィールドおよびデータの文書化」 を参照してください。
  • 特別な Serializable クラスメンバ serialPersistentFields では、private を宣言しなければなりません。「1.5 クラスの直列化可能なフィールドの指定」を参照してください。
  • serialVersionUID の算出に関する手順については、「4.6 ストリーム固有識別子」で明示しました。

    1998 年 2 月 6 日 JDKTM 1.2 Beta 3 での変更

  • STREAM_PROTOCOL バージョンの概念を導入しました。ローカルの仮想マシン内で Externalizable オブジェクトのクラスが利用できない場合でも、ストリーム内の Externalizable オブジェクトを使ってスキップを可能にする Externalizable オブジェクトの新しい形式を示すため、STREAM_PROTOCOL_2 バージョンを追加しました。互換性の問題については、「6.3 ストリームプロトコルのバージョン」を参照してください。
  • ObjectInputStream.resolveClass メソッドは、ストリーム内のクラス名とは別のパッケージのローカルクラスを返すことができます。この機能により、リリース間でパッケージ名を変えることができます。serialVersionUID および基底クラス名は、ストリーム内とクラスのローカルバージョン内で同じである必要があります。「3.1 ObjectInputStream クラス」を参照してください。
  • ストリームへの書き込み、またはストリームからの読み込み時に、String または array オブジェクトの置換が可能となります。「2.1 ObjectOutputStream クラス」および「3.1 ObjectInputStream クラス」を参照してください。

    1997 年 9 月 4 日 JDKTM 1.2 Beta1 での変更

  • Replaceable インタフェースを、Replaceable および Resolvable の 2 つのインタフェースに分割しました。Replaceable インタフェースにより、オブジェクトをストリームに直列化する直前に、クラスが自らの置換を指定することができます。Resolvable インタフェースにより、ストリームからオブジェクトを読み込むときに、クラスが自らの置換を指定することができます。
  • 直列化を、JDKTM 1.2 セキュリティモデルを使うように修正しまた。ObjectInputStream.enableReplace メソッドおよび ObjectOutputStream.enableResolve メソッド内で SerializablePermission "enableSubstitution" がチェックされます。「2.1 ObjectOutputStream クラス」および「3.1 ObjectInputStream クラス」を参照してください。
  • 処理された IOException がストリームに書き込まれるように、writeObject の例外ハンドラを変更しました。「2.1 ObjectOutputStream クラス」を参照してください。

    1997 年 7 月 3 日 JDKTM 1.2 Alpha での変更

  • クラスの直列化状態を指定するための要件を文書化しました。「1.5 クラスの直列化可能なフィールドの指定」を参照してください。
  • クラスの直列化されたフィールドにクラスがさらに柔軟にアクセスできるように、直列化可能なフィールド API を追加しました。ストリームのプロトコルは変更されていません。「1.7 クラスの直列化可能フィールドへのアクセス」「2.2 ObjectOutputStream.PutField クラス」、および「3.2 ObjectInputStream.GetField クラス」を参照してください。
  • フィールド記述子およびデータの、ストリームへの書き込みおよびストリームからの読み込みが、標準順序で行われることを明示しました。「4.1 ObjectStreamClass クラス」 を参照してください。

    目次 | 前の項目 | 次の項目 Java オブジェクト直列化仕様
    バージョン 5.0

    Copyright © 2004 Sun Microsystems, Inc. All rights reserved