MethodHandles.Invoker(MethodType) Método

Definição

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.

Aplica-se a