共用方式為


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 方法會採用 Object 類型的參數(而不是 Serializable 類型),以允許以可串行化物件取代不可串行化物件的案例。

當子類別取代 物件時,它必須確定必須在還原串行化期間進行互補替代,或者替代的物件與儲存參考的每個欄位相容。 物件,其類型不是欄位或數位專案類型的子類別,會藉由引發例外狀況而中止串行化,而且不會儲存物件。

只有在第一次遇到每個物件時,才會呼叫這個方法一次。 物件的所有後續參考都會重新導向至新的物件。 這個方法應該傳回要取代的物件或原始物件。

Null 可以當做要取代的物件傳回,但在包含原始對象的參考的類別中,可能會造成 NullReferenceException,因為它們可能預期物件而非 Null。

java.io.ObjectOutputStream.replaceObject(java.lang.Object)Java 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

適用於

另請參閱