語言

ObjectInputStream.ResolveObject(Object) 方法

定義

此方法允許 ObjectInputStream 的受信任子類別在反序列化過程中替換一個物件。

[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 的受信任子類別在反序列化過程中替換一個物件。 在呼叫 enableResolveObject 之前,替換物件會被禁用。 enableResolveObject 方法檢查請求解析物件的串流是否可信。 每個對可序列化物件的引用都會傳給 resolveObject。 為確保物件的私有狀態不會被無意中暴露,只有受信任的串流才可以使用 resolveObject。

此方法在物件被讀取後、但尚未從 readObject 回傳之前被呼叫。 預設的 resolveObject 方法只是回傳相同的物件。

當子類別替換物件時,必須確保替換物件與所有將存放該參考的欄位相容。 型別不是欄位或陣列元素子類別的物件,會透過產生例外來中止序列化,且該物件不會被儲存。

此方法僅在每個物件首次遇到時呼叫一次。 所有後續對該物件的引用都會被重新導向到新的物件。

Java 文件 java.io.ObjectInputStream.resolveObject(java.lang.Object)

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

另請參閱