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)

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象

こちらもご覧ください