MethodHandles.ExplicitCastArguments(MethodHandle, 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 que adapta el tipo del identificador de método determinado a un nuevo tipo mediante argumentos en pares y conversión de tipos devueltos.
[Android.Runtime.Register("explicitCastArguments", "(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? ExplicitCastArguments(Java.Lang.Invoke.MethodHandle? target, Java.Lang.Invoke.MethodType? newType);
[<Android.Runtime.Register("explicitCastArguments", "(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member ExplicitCastArguments : Java.Lang.Invoke.MethodHandle * Java.Lang.Invoke.MethodType -> Java.Lang.Invoke.MethodHandle
Parámetros
- target
- MethodHandle
identificador del método que se va a invocar después de que se vuelvan a escribir los argumentos.
- newType
- MethodType
el tipo esperado del nuevo identificador de método
Devoluciones
un identificador de método que delega al destino después de realizar las conversiones de argumentos necesarias y organiza las conversiones de valor devuelto necesarias.
- Atributos
Comentarios
Genera un identificador de método que adapta el tipo del identificador de método determinado a un nuevo tipo mediante argumentos en pares y conversión de tipos devueltos. El tipo original y el nuevo tipo deben tener el mismo número de argumentos. Se garantiza que el identificador del método resultante notifique un tipo que sea igual al nuevo tipo deseado.
Si el tipo original y el nuevo tipo son iguales, devuelve el destino.
También se permiten las mismas conversiones que para MethodHandle#asType MethodHandle.asTypey también se aplican algunas conversiones adicionales si se produce un error en esas conversiones. Dados tipos em T0</em>, <em>T1</em>, se aplica una de las siguientes conversiones si es posible, antes o en lugar de cualquier conversión realizada por asType: <ul><li>If <em T0<>/>em y <em>T1/em> son referencias, y <em>T1<</em> es un tipo de interfaz, entonces el valor de tipo <em>T0</em> se pasa como em <>T1</em> sin una conversión.>< (Este tratamiento de interfaces sigue el uso del comprobador de código de bytes). <li>Si <em>T0</em> es booleano y <em>T1</em> es otro primitivo, el booleano se convierte en un valor de byte, 1 para true, 0 para false. (Este tratamiento sigue el uso del comprobador de código de bytes). <li>Si <em>T1</em> es booleano y <em>T0</em> es otro primitivo, <em>T0</em> se convierte en byte a través de Java conversión de conversión (JLS 5.5) y el bit de orden bajo del resultado se prueba, como si fuera (x & 1) != 0.
<li>Si <em>T0</em> y <em>T1</em> son primitivos distintos del booleano, se aplica una conversión de Java (JLS 5.5). (En concreto, <em T0</em> se convertirá a <em>T1</em> al ampliar y/o restringir). <>li>Si <em>T0</em> es una referencia y <em>T1</em> un primitivo, se aplicará una conversión unboxing en tiempo de ejecución, posiblemente seguido de una conversión de conversión de Java (JLS 5.5) en el valor primitivo, posiblemente seguido de una conversión de byte a boolean mediante la prueba del bit de orden bajo.
<li>Si <em>T0</em> es una referencia y <em>T1</em> un primitivo, y si la referencia es null en tiempo de ejecución, se introduce un valor cero.
</ul>
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.