MethodHandles.ExactInvoker(MethodType) 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í.
Genera un identificador de método>< em invoker especial <>que se puede usar para invocar cualquier identificador de método del tipo especificado, como si fuera .MethodHandle#invokeExact invokeExact
[Android.Runtime.Register("exactInvoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? ExactInvoker(Java.Lang.Invoke.MethodType? type);
[<Android.Runtime.Register("exactInvoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member ExactInvoker : 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 del tipo especificado
- Atributos
Comentarios
Genera un identificador de método>< em invoker especial <>que se puede usar para invocar cualquier identificador de método del tipo especificado, como si fuera .MethodHandle#invokeExact invokeExact El invocador resultante tendrá un tipo que es exactamente igual al tipo deseado, salvo que aceptará un argumento inicial adicional de tipo MethodHandle.
Este método es equivalente al código siguiente (aunque puede ser más eficaz): publicLookup().findVirtual(MethodHandle.class, "invokeExact", type)
<em>Discussion:</em> Invoker method handles can be útil when working with variable method handles of unknown types. Por ejemplo, para emular una invokeExact llamada a un identificador Mde método de variable , extraiga su tipo T, busque el método X invocador para Ty llame al método invocador, como X.invoke(T, A...). (No funcionaría para llamar X.invokeExacta , ya que el tipo T es desconocido). Si se requieren transformaciones de propagación, recopilación u otros argumentos, se pueden aplicar una vez al invocador X y reutilizarse en muchos M valores de identificador de método, siempre y cuando sean compatibles con el tipo de X.
<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.exactInvoker(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.