ObjectInputStream.ResolveClass(ObjectStreamClass) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
載入指定串流類別描述的本地類別對應物。
[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 是對應於最接近當前執行框架的此類方法的類別載入器;否則 loader 為 null。 若此呼叫結果為 aClassNotFoundException,且傳遞ObjectStreamClass實例名稱為原始型別或空域的Java語言關鍵字,則Class該原始型別或空域的物件將被回傳(例如,帶有該名稱"int"的物件ObjectStreamClass會解析為 Integer.TYPE)。 否則,將 ClassNotFoundException 拋給該方法的呼叫者。
Java 文件 java.io.ObjectInputStream.resolveClass(java.io.ObjectStreamClass)。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。