MethodHandles.Invoker(MethodType) 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.
Produz um identificador< de método em>invoker especial <que> pode ser usado para invocar qualquer identificador de método compatível com o tipo fornecido, como se fosse por MethodHandle#invoke invoke.
[Android.Runtime.Register("invoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? Invoker(Java.Lang.Invoke.MethodType? type);
[<Android.Runtime.Register("invoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member Invoker : Java.Lang.Invoke.MethodType -> Java.Lang.Invoke.MethodHandle
Parâmetros
- type
- MethodType
o tipo de destino desejado
Retornos
um identificador de método adequado para invocar qualquer identificador de método conversível para o tipo fornecido
- Atributos
Comentários
Produz um identificador< de método em>invoker especial <que> pode ser usado para invocar qualquer identificador de método compatível com o tipo fornecido, como se fosse por MethodHandle#invoke invoke. O invocador resultante terá um tipo exatamente igual ao tipo desejado, exceto que ele aceitará um argumento principal adicional do tipo MethodHandle.
Antes de invocar seu destino, se o destino for diferente do tipo esperado, o invocador aplicará conversões de referência conforme necessário e caixa, unbox ou valores primitivos ampliados, como se fosse por MethodHandle#asType asType. Da mesma forma, o valor retornado será convertido conforme necessário. Se o destino for um identificador do método de arity de variável MethodHandle#asVarargsCollector, a conversão de aridade necessária será feita, novamente como se fosse por MethodHandle#asType asType.
Esse método é equivalente ao código a seguir (embora possa ser mais eficiente): publicLookup().findVirtual(MethodHandle.class, "invoke", type)
<em>Discussão:</em> Um tipo de método geral MethodType#genericMethodType é aquele que menciona apenas Object argumentos e valores retornados. Um invocador para esse tipo é capaz de chamar qualquer identificador de método da mesma aridade que o tipo geral.
<em>(Observação: o método de invocador não está disponível por meio da API de Reflexão Principal. Uma tentativa de chamar java.lang.reflect.Method#invoke java.lang.reflect.Method.invoke no método declarado invokeExactinvoke gerará um java.lang.UnsupportedOperationException UnsupportedOperationException.)</em>
Esse método não gera exceções reflexivas ou de segurança.
Documentação Java para java.lang.invoke.MethodHandles.invoker(java.lang.invoke.MethodType).
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.