MethodHandles.GuardWithTest(MethodHandle, MethodHandle, MethodHandle) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt ein Methodenhandle, mit dem ein Zielmethodenhandle angepasst wird, indem er mit einem Test geschützt wird, ein boolescher Methodenhandle.
[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
Parameter
- test
- MethodHandle
Für Test verwendete Methodenhandle muss boolescher Wert zurückgegeben werden.
- target
- MethodHandle
Methodenhandle zum Aufrufen, wenn der Test bestanden wurde
- fallback
- MethodHandle
Methodenhandle zum Aufrufen, wenn der Test fehlschlägt
Gibt zurück
Methodenhandle, das die angegebene If/then/else-Logik enthält
- Attribute
Hinweise
Erstellt ein Methodenhandle, mit dem ein Zielmethodenhandle angepasst wird, indem er mit einem Test geschützt wird, ein boolescher Methodenhandle. Wenn der Schutz fehlschlägt, wird stattdessen ein Fallbackhandle aufgerufen. Alle drei Methodenhandles müssen dasselbe entsprechende Argument und die Rückgabetypen aufweisen, mit der Ausnahme, dass der Rückgabetyp des Tests boolescher Wert sein muss, und der Test darf weniger Argumente haben als die anderen beiden Methodenhandles.
Hier ist pseudocode für den resultierenden Adapter: <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> Note that the test arguments (a... in the pseudocode) cannot be modified by execution of the test, and so are passed unchanged from the caller to the target or fallback as appropriate.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.