ObjectInputStream.ResolveObject(Object) メソッド

定義

このメソッドを使用すると、ObjectInputStream の信頼できるサブクラスは、逆シリアル化中に 1 つのオブジェクトを別のオブジェクトに置き換えることができるようになります。

[Android.Runtime.Register("resolveObject", "(Ljava/lang/Object;)Ljava/lang/Object;", "GetResolveObject_Ljava_lang_Object_Handler")]
protected virtual Java.Lang.Object? ResolveObject (Java.Lang.Object? obj);
[<Android.Runtime.Register("resolveObject", "(Ljava/lang/Object;)Ljava/lang/Object;", "GetResolveObject_Ljava_lang_Object_Handler")>]
abstract member ResolveObject : Java.Lang.Object -> Java.Lang.Object
override this.ResolveObject : Java.Lang.Object -> Java.Lang.Object

パラメーター

obj
Object

置き換えられるオブジェクト

戻り値

置き換えたオブジェクト

属性

例外

置換オブジェクトの作成時に I/O エラーが発生した場合は 。

注釈

このメソッドを使用すると、ObjectInputStream の信頼できるサブクラスは、逆シリアル化中に 1 つのオブジェクトを別のオブジェクトに置き換えることができるようになります。 enableResolveObject が呼び出されるまで、オブジェクトの置換は無効になります。 enableResolveObject メソッドは、オブジェクトの解決を要求するストリームが信頼できることを確認します。 シリアル化可能なオブジェクトへのすべての参照は resolveObject に渡されます。 オブジェクトのプライベート状態が意図せずに公開されないようにするには、信頼されたストリームのみが resolveObject を使用できます。

このメソッドは、オブジェクトが読み取られた後、readObject から返される前に呼び出されます。 既定の resolveObject メソッドは、同じオブジェクトを返すだけです。

サブクラスがオブジェクトを置き換える場合は、置換されたオブジェクトが参照が格納されるすべてのフィールドと互換性があることを保証する必要があります。 型がフィールドまたは配列要素の型のサブクラスではないオブジェクトは、例外を発生させてシリアル化を中止し、オブジェクトは格納されません。

このメソッドは、各オブジェクトが最初に検出されたときに 1 回だけ呼び出されます。 オブジェクトへの後続の参照はすべて、新しいオブジェクトにリダイレクトされます。

の Java ドキュメント java.io.ObjectInputStream.resolveObject(java.lang.Object)

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

適用対象

こちらもご覧ください