MethodHandles.GuardWithTest(MethodHandle, MethodHandle, MethodHandle) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ブール値のメソッド ハンドルであるテストで保護することで、ターゲット メソッド ハンドルを調整するメソッド ハンドルを作成します。
[Android.Runtime.Register("guardWithTest", "(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? GuardWithTest(Java.Lang.Invoke.MethodHandle? test, Java.Lang.Invoke.MethodHandle? target, Java.Lang.Invoke.MethodHandle? fallback);
[<Android.Runtime.Register("guardWithTest", "(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member GuardWithTest : Java.Lang.Invoke.MethodHandle * Java.Lang.Invoke.MethodHandle * Java.Lang.Invoke.MethodHandle -> Java.Lang.Invoke.MethodHandle
パラメーター
- test
- MethodHandle
テストに使用されるメソッド ハンドルはブール値を返す必要があります
- target
- MethodHandle
テストに合格した場合に呼び出すメソッド ハンドル
- fallback
- MethodHandle
テストが失敗した場合に呼び出すメソッド ハンドル
返品
指定された if/then/else ロジックを組み込むメソッド ハンドル
- 属性
注釈
ブール値のメソッド ハンドルであるテストで保護することで、ターゲット メソッド ハンドルを調整するメソッド ハンドルを作成します。 ガードが失敗した場合は、代わりにフォールバック ハンドルが呼び出されます。 3 つのメソッド ハンドルはすべて、対応する引数と戻り値の型が同じである必要があります。ただし、テストの戻り値の型はブール値である必要があり、テストは他の 2 つのメソッド ハンドルよりも少ない引数を持つことができます。
結果のアダプターの擬似コードを次に示します。 <blockquote>
{@code
boolean test(A...);
T target(A...,B...);
T fallback(A...,B...);
T adapter(A... a,B... b) {
if (test(a...))
return target(a..., b...);
else
return fallback(a..., b...);
}
}
</blockquote> テスト引数 (擬似コード内のa... ) はテストの実行によって変更できないため、呼び出し元からターゲットまたはフォールバックに変更されずに渡されることに注意してください。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。