目次|前|次 | 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用の更新