言語

ObjectInputStream.ReadUnshared メソッド

定義

ObjectInputStream から "非共有" オブジェクトを読み取ります。

[Android.Runtime.Register("readUnshared", "()Ljava/lang/Object;", "GetReadUnsharedHandler")]
public virtual Java.Lang.Object? ReadUnshared();
[<Android.Runtime.Register("readUnshared", "()Ljava/lang/Object;", "GetReadUnsharedHandler")>]
abstract member ReadUnshared : unit -> Java.Lang.Object
override this.ReadUnshared : unit -> Java.Lang.Object

返品

逆シリアル化されたオブジェクトへの参照

属性

例外

オブジェクト グラフ内のいずれかのオブジェクトのクラスが見つからない場合。

ソース ストリームからの読み取り中にエラーが発生した場合。

注釈

ObjectInputStream から "非共有" オブジェクトを読み取ります。 このメソッドは readObject と同じですが、readObject と readUnshared の後続の呼び出しでは、この呼び出しによって取得された逆シリアル化されたインスタンスへの追加の参照が返されないようにします。 具体的には、 <ul><li> readUnshared が呼び出されて、バック参照 (ストリームに以前に書き込まれたオブジェクトのストリーム表現) を逆シリアル化すると、ObjectStreamException がスローされます。

<li> readUnshared が正常に返された場合、readUnshared によって逆シリアル化されたストリーム ハンドルへのバック参照を逆シリアル化しようとすると、ObjectStreamException がスローされます。 </ul> readUnshared を使用してオブジェクトを逆シリアル化すると、返されたオブジェクトに関連付けられているストリーム ハンドルが無効になります。 それ自体では、readUnshared によって返される参照が一意であるとは限りません。逆シリアル化されたオブジェクトは、他のパーティに表示されるオブジェクトを返す readResolve メソッドを定義するか、readUnshared がストリーム内の他の場所または外部の手段を介して取得できるクラス オブジェクトまたは列挙型定数を返す場合があります。 逆シリアル化されたオブジェクトが readResolve メソッドを定義し、そのメソッドの呼び出しが配列を返す場合、readUnshared はその配列の浅い複製を返します。これにより、返される配列オブジェクトは一意であり、基になるデータ ストリームが操作されている場合でも、ObjectInputStream での readObject または readUnshared の呼び出しから 2 回目は取得できません。

このメソッドをオーバーライドする ObjectInputStream サブクラスは、"enableSubclassImplementation" SerializablePermission を所有するセキュリティ コンテキストでのみ構築できます。このようなサブクラスをこの権限なしでインスタンス化しようとすると、SecurityException がスローされます。

1.4 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

こちらもご覧ください