語言

ObjectInputStream.ResolveClass(ObjectStreamClass) 方法

定義

載入指定串流類別描述的本地類別對應物。

[Android.Runtime.Register("resolveClass", "(Ljava/io/ObjectStreamClass;)Ljava/lang/Class;", "GetResolveClass_Ljava_io_ObjectStreamClass_Handler")]
protected virtual Java.Lang.Class? ResolveClass(Java.IO.ObjectStreamClass? desc);
[<Android.Runtime.Register("resolveClass", "(Ljava/io/ObjectStreamClass;)Ljava/lang/Class;", "GetResolveClass_Ljava_io_ObjectStreamClass_Handler")>]
abstract member ResolveClass : Java.IO.ObjectStreamClass -> Java.Lang.Class
override this.ResolveClass : Java.IO.ObjectStreamClass -> Java.Lang.Class

參數

desc
ObjectStreamClass

一個類別的實例 ObjectStreamClass

傳回

一個 Class 對應於 desc

屬性

例外狀況

如果找不到物件的類別。

如果在建立類別時發生 I/O 錯誤。

備註

載入指定串流類別描述的本地類別對應物。 子類別可能實作此方法,允許從其他來源擷取類別。

對應的ObjectOutputStreamannotateClass方法是。 此方法將對串流中每個獨特類別只被呼叫一次。 此方法可由子類別實作,使用替代載入機制,但必須回傳物件 Class 。 一旦回傳,若類別不是陣列類別,其 serialVersionUID 會與序列化類別的 serialVersionUID 比較,若不匹配,反序列化失敗並拋出 a InvalidClassException

此方法 ObjectInputStream 的預設實作會回傳呼叫的結果

Class.forName(desc.getName(), false, loader)

其中 loader 定義如下:若目前執行緒堆疊中存在一個方法,其宣告類別由使用者定義的類別載入器定義(且非為實作反映呼叫而產生),則 loader 是對應於最接近當前執行框架的此類方法的類別載入器;否則 loadernull。 若此呼叫結果為 aClassNotFoundException,且傳遞ObjectStreamClass實例名稱為原始型別或空域的Java語言關鍵字,則Class該原始型別或空域的物件將被回傳(例如,帶有該名稱"int"的物件ObjectStreamClass會解析為 Integer.TYPE)。 否則,將 ClassNotFoundException 拋給該方法的呼叫者。

Java 文件 java.io.ObjectInputStream.resolveClass(java.io.ObjectStreamClass)

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

適用於