ObjectInputStream.ResolveProxyClass(String[]) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
回傳一個代理類別,該類別實作代理類別描述符中所命名的介面;子類別可實作此方法,從串流中讀取自訂資料及動態代理類別的描述符,允許它們使用介面與代理類別的替代載入機制。
[Android.Runtime.Register("resolveProxyClass", "([Ljava/lang/String;)Ljava/lang/Class;", "GetResolveProxyClass_arrayLjava_lang_String_Handler")]
protected virtual Java.Lang.Class? ResolveProxyClass(string[]? interfaces);
[<Android.Runtime.Register("resolveProxyClass", "([Ljava/lang/String;)Ljava/lang/Class;", "GetResolveProxyClass_arrayLjava_lang_String_Handler")>]
abstract member ResolveProxyClass : string[] -> Java.Lang.Class
override this.ResolveProxyClass : string[] -> Java.Lang.Class
參數
- interfaces
- String[]
代理類別描述符中被反序列化的介面名稱清單
傳回
指定介面的代理類別
- 屬性
例外狀況
若代理類別或任何指定介面無法建立。
如果讀取來源串流時發生錯誤。
備註
回傳一個代理類別,該類別實作代理類別描述符中所命名的介面;子類別可實作此方法,從串流中讀取自訂資料及動態代理類別的描述符,允許它們使用介面與代理類別的替代載入機制。
此方法對串流中每個唯一代理類別描述符只呼叫一次。
對應的ObjectOutputStreamannotateProxyClass方法是。 對於覆蓋此方法的給定子類別 ObjectInputStream , annotateProxyClass 該子類別 ObjectOutputStream 中的方法必須寫入該方法讀取的任何資料或物件。
此方法ObjectInputStream的預設實作會回傳Proxy.getProxyClass呼叫時,參數中所命名interfaces的介面物件清單Class的結果。 每個介面名稱i的Class物件是透過呼叫回傳的值
Class.forName(i, false, loader)
其中 loader 是執行堆疊中第一個非null 類別載入器的載入器,或 null 是堆疊中沒有非null 類別載入器的載入器(與該 resolveClass 方法相同的類別載入器選項)。 除非解析中的介面是非公開的,否則這個相同的值 loader 也是傳遞給 Proxy.getProxyClass的類別載入器;若存在非公開介面,則會傳遞其類別載入器(若遇到多個非公開介面類別載入器,則拋出 a IllegalAccessError )。 若Proxy.getProxyClass拋出 ,IllegalArgumentExceptionresolveProxyClass則拋ClassNotFoundException出包含 的 IllegalArgumentException。
在 1.3 版本中加入。
Java 文件 java.io.ObjectInputStream.resolveProxyClass(java.lang.String[])。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。