MethodHandles.GuardWithTest(MethodHandle, MethodHandle, MethodHandle) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Faz um identificador de método que adapta um identificador de método de destino, guardando-o com um teste, um identificador de método com valor booliano.
[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 teste, deve retornar booliano
- target
- MethodHandle
identificador de método para chamar se o teste for aprovado
- fallback
- MethodHandle
identificador de método para chamar se o teste falhar
Retornos
identificador de método que incorpora a lógica if/then/else especificada
- Atributos
Comentários
Faz um identificador de método que adapta um identificador de método de destino, guardando-o com um teste, um identificador de método com valor booliano. Se o guarda falhar, um identificador de fallback será chamado. Todos os três identificadores de método devem ter os mesmos tipos de argumento e retorno correspondentes, exceto que o tipo de retorno do teste deve ser booliano e o teste tem permissão para ter menos argumentos do que os outros dois identificadores de método.
Aqui está o pseudocódigo para o 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> Observe que os argumentos de teste (a... no pseudocódigo) não podem ser modificados pela execução do teste e, portanto, são passados inalterados do chamador para o destino ou fallback conforme apropriado.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.