MethodHandles.ExplicitCastArguments(MethodHandle, MethodType) Método

Definição

Produz um identificador de método que adapta o tipo do identificador de método fornecido a um novo tipo por argumento par e conversão de tipo de retorno.

[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

o identificador do método a ser invocado depois que os argumentos são tipados novamente

newType
MethodType

o tipo esperado do novo identificador de método

Retornos

um identificador de método que delega ao destino depois de executar as conversões de argumento necessárias e organiza todas as conversões de valor retornado necessárias

Atributos

Comentários

Produz um identificador de método que adapta o tipo do identificador de método fornecido a um novo tipo por argumento par e conversão de tipo de retorno. O tipo original e o novo tipo devem ter o mesmo número de argumentos. O identificador de método resultante é garantido para relatar um tipo igual ao novo tipo desejado.

Se o tipo original e o novo tipo forem iguais, retornará o destino.

As mesmas conversões são permitidas e MethodHandle#asType MethodHandle.asTypealgumas conversões adicionais também são aplicadas se essas conversões falharem. Determinados tipos <em T0</em>, <em>T1</em>, uma das seguintes conversões é aplicada se possível, antes ou em vez de quaisquer conversões feitas porasType: <ul><li>Se <em>T0</em> e <em>T1</em> são referências, e <em>T1</em> é um tipo de interface, então o valor do tipo <em>T0</em> é passado como um <em>T1</em>> sem conversão. (Esse tratamento de interfaces segue o uso do verificador de bytecode.) <li>Se <em>T0</em> for booliano e <em>T1</em> for outro primitivo, o booliano será convertido em um valor de byte, 1 para true, 0 para false. (Este tratamento segue o uso do verificador de código de byte.) <li>Se <em>T1</em> for booliano e <em>T0</em> for outro primitivo, <em>T0</em será convertido em> byte por meio de conversão de conversão de Java (JLS 5.5) e o bit de ordem baixa do resultado será testado, como se fosse por (x & 1) != 0. <li>Se <em>T0</em> e <em>T1</em> são primitivos diferentes do booliano, uma conversão de conversão de Java (JLS 5.5) é aplicada. (Especificamente, <em>T0</em> converterá em <em>T1</em> ampliando e/ou estreitando.) <li>Se <em>T0</em> for uma referência e <em>T1</em> um primitivo, uma conversão de unboxing será aplicada em runtime, possivelmente seguida por uma conversão de conversão de Java (JLS 5.5) no valor primitivo, possivelmente seguida por uma conversão de byte para booleano testando o bit de baixa ordem. <li>Se <em>T0</em> for uma referência e <em>T1</em> um primitivo e se a referência for nula em runtime, um valor zero será introduzido. </ul>

Java documentação para java.lang.invoke.MethodHandles.explicitCastArguments(java.lang.invoke.MethodHandle, 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