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[]
プロキシ クラス記述子で逆シリアル化されたインターフェイス名の一覧
返品
指定したインターフェイスのプロキシ クラス
- 属性
例外
プロキシ クラスまたは指定されたインターフェイスのいずれかを作成できない場合は 。
ソース ストリームからの読み取り中にエラーが発生した場合。
注釈
プロキシ クラス記述子で指定されたインターフェイスを実装するプロキシ クラスを返します。サブクラスは、ストリームからカスタム データを動的プロキシ クラスの記述子と共に読み取るために、このメソッドを実装して、インターフェイスとプロキシ クラスの代替読み込みメカニズムを使用できます。
このメソッドは、ストリーム内の一意のプロキシ クラス記述子ごとに 1 回だけ呼び出されます。
ObjectOutputStreamの対応するメソッドはannotateProxyClass。 このメソッドをオーバーライドするObjectInputStreamの特定のサブクラスの場合、ObjectOutputStreamの対応するサブクラスのannotateProxyClass メソッドは、このメソッドによって読み取られたデータまたはオブジェクトを書き込む必要があります。
ObjectInputStreamのこのメソッドの既定の実装では、interfaces パラメーターに名前が付けられたインターフェイスのClass オブジェクトの一覧を使用してProxy.getProxyClassを呼び出した結果が返されます。 各インターフェイス名iのClass オブジェクトは、呼び出しによって返される値です
Class.forName(i, false, loader)
ここでloaderは、実行スタック上の最初の非null クラス ローダーの場合、またはnull以外のクラス ローダーがスタック上に存在しない場合にnullです (resolveClass メソッドで使用されるのと同じクラス ローダーの選択)。 解決されたインターフェイスのいずれかが非パブリックでない場合、 loader のこの同じ値は、 Proxy.getProxyClassに渡されるクラス ローダーでもあります。非パブリック インターフェイスが存在する場合は、そのクラス ローダーが代わりに渡されます (複数の非パブリック インターフェイス クラス ローダーが検出された場合、 IllegalAccessError がスローされます)。
Proxy.getProxyClassがIllegalArgumentExceptionをスローすると、resolveProxyClassはIllegalArgumentExceptionを含むClassNotFoundExceptionをスローします。
1.3 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。