次の方法で共有


ObjectOutputStream.ReplaceObject(Object) メソッド

定義

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

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

パラメーター

obj
Object

置き換えるオブジェクト

戻り値

指定したオブジェクトを置き換えた代替オブジェクト

属性

例外

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

注釈

このメソッドを使用すると、ObjectOutputStream の信頼されたサブクラスで、シリアル化中にオブジェクトを別のオブジェクトに置き換えることができるようになります。 enableReplaceObject が呼び出されるまで、オブジェクトの置換は無効になります。 enableReplaceObject メソッドは、置換を要求するストリームが信頼できることを確認します。 シリアル化ストリームに書き込まれた各オブジェクトの最初の出現箇所は、replaceObject に渡されます。 オブジェクトへの後続の参照は、replaceObject の元の呼び出しによって返されたオブジェクトに置き換えられます。 オブジェクトのプライベート状態が意図せずに公開されないようにするために、信頼されたストリームのみが replaceObject を使用できます。

ObjectOutputStream.writeObject メソッドは、シリアル化できないオブジェクトがシリアル化可能なオブジェクトに置き換えられる場合に使用できるように、オブジェクト型 (Serializable 型ではなく) のパラメーターを受け取ります。

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

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

Null は、オブジェクトが置き換えられるように返すことができますが、元のオブジェクトへの参照を含むクラスでは NullReferenceException が発生する可能性があります。これは、null ではなくオブジェクトを想定している可能性があるためです。

の Java ドキュメントjava.io.ObjectOutputStream.replaceObject(java.lang.Object)

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

適用対象

こちらもご覧ください