MethodHandles.GuardWithTest(MethodHandle, MethodHandle, MethodHandle) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rende un handle di metodo che adatta un handle di metodo di destinazione, sorvegliandolo con un test, un handle di metodo con valori booleani.
[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
Parametri
- test
- MethodHandle
handle del metodo usato per il test, deve restituire un valore booleano
- target
- MethodHandle
handle del metodo per chiamare se il test supera
- fallback
- MethodHandle
handle del metodo per chiamare se il test ha esito negativo
Valori restituiti
handle del metodo che incorpora la logica if/then/else specificata
- Attributi
Commenti
Rende un handle di metodo che adatta un handle di metodo di destinazione, sorvegliandolo con un test, un handle di metodo con valori booleani. Se la protezione ha esito negativo, viene invece chiamato un handle di fallback. Tutti e tre gli handle di metodo devono avere lo stesso argomento e gli stessi tipi restituiti, ad eccezione del fatto che il tipo restituito del test deve essere booleano e il test può avere meno argomenti rispetto agli altri due handle di metodo.
Ecco lo pseudocodice per l'adattatore risultante: <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> Si noti che gli argomenti di test (a... nello pseudocodice) non possono essere modificati dall'esecuzione del test e quindi vengono passati invariati dal chiamante alla destinazione o al fallback in base alle esigenze.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.