| 目次|前|次 | Javaオブジェクト直列化仕様 Version 6.0 |
2005年5月12日JavaTM SE Development Kit, v6 Beta 1用の更新
readResolve呼出しにより返される配列オブジェクトの処理方法に関する説明を追加しました。無効なserialPersistentFields値の場合の動作を明示しました。serialVersionUIDの一致が適用されないことを明示しました。IllegalArgumentExceptionがObjectOutputStream.PutFieldsによってスローされるタイミングを明示しました。2003年7月24日JavaTM 2 SDK, Standard Edition, v1.5 Beta 1用の更新
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クラス」を参照してください。writeObjectメソッドがオプション・データを書き込む前にObjectOutputStream.defaultWriteObjectまたはwriteFieldsを一度呼び出す必要があること、およびクラス定義readObjectメソッドがオプション・データを読み込む前にObjectInputStream.defaultReadObjectまたはreadFieldsを一度呼び出す必要があることを明示しました。セクション2.3「writeObjectメソッド」とセクション3.4「readObjectメソッド」を参照してください。readObjectメソッドまたはreadExternalメソッドが利用可能なデータの境界を超える読取り操作を試みたときのObjectInputStreamの動作を明示しました。セクション3.4「readObjectメソッド」およびセクション3.6「readExternalメソッド」を参照してください。1999年7月30日JavaTM 2 SDK, Standard Edition, v1.3 Beta用の更新
Stringオブジェクトを書き込む機能を追加しました。セクション6.2「ストリーム要素」を参照してください。ObjectOutputStream.writeClassDescriptorおよびObjectInputStream.readClassDescriptorは、ObjectStreamClassクラス記述子の直列化表現をカスタマイズする手段を提供します。セクション2.1「ObjectOutputStreamクラス」とセクション3.1「ObjectInputStreamクラス」を参照してください。1998年9月30日JDKTM 1.2 Beta4 RC1用の更新
1998年6月22日JDKTM 1.2 Beta4用の更新
java.ioのインタフェースであるReplaceableとResolvableを削除しました。インタフェースとしてのこれらのクラスへの参照は、いずれもjava.io.Serializableに置き換えるようにしてください。SerializableクラスがwriteReplaceおよびreadResolveメソッドを定義する場合、直列化はリフレクションを使用してこれらのメソッドを呼び出します。2.5項「writeReplaceメソッド」および3.7項「readResolveメソッド」を参照してください。serialPersistentFieldsは、privateとして宣言しなければいけません。セクション1.5「クラスの直列化可能なフィールドの指定」を参照してください。serialVersionUIDの計算に必要な手順をセクション4.6「ストリーム固有識別子」に明示しました。1998年2月6日JDKTM 1.2 Beta 3用の更新
STREAM_PROTOCOL_2バージョンを追加しました。(ローカル仮想マシン内でオブジェクトのクラスが利用できない場合でも)ストリーム内でExternalizableオブジェクトによるスキップを有効にするExternalizableオブジェクトの新しい形式を示します。互換性の問題については、6.3項「ストリーム・プロトコル・バージョン」を参照してください。The ObjectInputStream.resolveClassメソッドは、ストリーム内のクラス名とは別のパッケージのローカル・クラスを返すことができます。この機能により、リリース間でパッケージ名を変えることができます。serialVersionUIDおよび基底クラス名は、ストリーム内とローカル・バージョンのクラス内で同じである必要があります。セクション3.1「ObjectInputStreamクラス」を参照してください。Stringまたはarrayオブジェクトをストリームに書き込むときまたはストリームから読み込むときに、それらの置換が可能になります。セクション2.1「ObjectOutputStreamクラス」とセクション3.1「ObjectInputStreamクラス」を参照してください。1997年9月4日JDKTM 1.2 Beta1用の更新
ObjectInputStream.enableReplaceおよびObjectOutputStream.enableResolveメソッド内にSerializablePermission "enableSubstitution"のチェックがあります。セクション2.1「ObjectOutputStreamクラス」とセクション3.1「ObjectInputStreamクラス」を参照してください。IOExceptionをストリームに書き込むように、writeObjectの例外ハンドラを更新しました。セクション2.1「ObjectOutputStreamクラス」を参照してください。1997年7月3日JDKTM 1.2 Alpha用の更新