Lenguaje

MethodHandles.Invoker(MethodType) Método

Definición

Genera un identificador de método>< em invoker especial <>que se puede usar para invocar cualquier identificador de método compatible con el tipo especificado, como si fuera .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

el tipo de destino deseado

Devoluciones

un identificador de método adecuado para invocar cualquier identificador de método convertible al tipo especificado

Atributos

Comentarios

Genera un identificador de método>< em invoker especial <>que se puede usar para invocar cualquier identificador de método compatible con el tipo especificado, como si fuera .MethodHandle#invoke invoke El invocador resultante tendrá un tipo que es exactamente igual al tipo deseado, salvo que aceptará un argumento inicial adicional de tipo MethodHandle.

Antes de invocar su destino, si el destino difiere del tipo esperado, el invocador aplicará conversiones de referencia según sea necesario y los valores primitivos, unbox o widen, como si fuera .MethodHandle#asType asType Del mismo modo, el valor devuelto se convertirá según sea necesario. Si el destino es un identificador de método de aridad de variables MethodHandle#asVarargsCollector, la conversión de aridad necesaria se realizará de nuevo como si fuera .MethodHandle#asType asType

Este método es equivalente al código siguiente (aunque puede ser más eficaz): publicLookup().findVirtual(MethodHandle.class, "invoke", type)

<em Discussion:</em>> A MethodType#genericMethodType tipo de método general es uno que menciona solo Object argumentos y valores devueltos. Un invocador para este tipo es capaz de llamar a cualquier identificador de método de la misma aridad que el tipo general.

<em>(Nota: El método invoker no está disponible a través de Core Reflection API. Un intento de llamar a java.lang.reflect.Method#invoke java.lang.reflect.Method.invoke en el método declarado invokeExact o generará un java.lang.UnsupportedOperationException UnsupportedOperationException.<invoke/em>

Este método no produce excepciones de seguridad ni reflectantes.

Java documentación para java.lang.invoke.MethodHandles.invoker(java.lang.invoke.MethodType).

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.

Se aplica a