MethodHandles.GuardWithTest(MethodHandle, MethodHandle, MethodHandle) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Convierte un identificador de método que adapta un identificador de método de destino, protegiéndolo con una prueba, un identificador de método con valores booleanos.
[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
Parámetros
- test
- MethodHandle
identificador de método usado para la prueba, debe devolver un valor booleano.
- target
- MethodHandle
identificador de método para llamar a si se supera la prueba
- fallback
- MethodHandle
identificador de método para llamar si se produce un error en la prueba
Devoluciones
identificador de método que incorpora la lógica if/then/else especificada
- Atributos
Comentarios
Convierte un identificador de método que adapta un identificador de método de destino, protegiéndolo con una prueba, un identificador de método con valores booleanos. Si se produce un error en la protección, se llama a un identificador de reserva en su lugar. Los tres identificadores de método deben tener el mismo argumento y tipos devueltos correspondientes, excepto que el tipo de valor devuelto de la prueba debe ser booleano y la prueba puede tener menos argumentos que los otros dos identificadores de método.
Este es el pseudocódigo para el adaptador resultante: <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> Tenga en cuenta que los argumentos de prueba (a... en el pseudocódigo) no se pueden modificar mediante la ejecución de la prueba y, por tanto, se pasan sin cambios del autor de la llamada al destino o reserva según corresponda.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.