MethodHandles.DropArguments Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
| Nome | Description |
|---|---|
| DropArguments(MethodHandle, Int32, Class[]) |
Produz um identificador de método que descartará alguns argumentos fictícios antes de chamar algum outro identificador de método de destino especificado. |
| DropArguments(MethodHandle, Int32, IList<Class>) |
Produz um identificador de método que descartará alguns argumentos de espaço reservado antes de chamar algum outro identificador de método de destino especificado. |
DropArguments(MethodHandle, Int32, Class[])
Produz um identificador de método que descartará alguns argumentos fictícios antes de chamar algum outro identificador de método de destino especificado.
[Android.Runtime.Register("dropArguments", "(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? DropArguments(Java.Lang.Invoke.MethodHandle? target, int pos, params Java.Lang.Class[]? valueTypes);
[<Android.Runtime.Register("dropArguments", "(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member DropArguments : Java.Lang.Invoke.MethodHandle * int * Java.Lang.Class[] -> Java.Lang.Invoke.MethodHandle
Parâmetros
- target
- MethodHandle
o identificador do método a ser invocado depois que os argumentos são removidos
- pos
- Int32
posição do primeiro argumento a ser removido (zero para a extrema esquerda)
- valueTypes
- Class[]
os tipos dos argumentos a serem removidos
Retornos
um identificador de método que descarta argumentos dos tipos fornecidos, antes de chamar o identificador de método original
- Atributos
Comentários
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.
Aplica-se a
DropArguments(MethodHandle, Int32, IList<Class>)
Produz um identificador de método que descartará alguns argumentos de espaço reservado antes de chamar algum outro identificador de método de destino especificado.
[Android.Runtime.Register("dropArguments", "(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? DropArguments(Java.Lang.Invoke.MethodHandle? target, int pos, System.Collections.Generic.IList<Java.Lang.Class>? valueTypes);
[<Android.Runtime.Register("dropArguments", "(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member DropArguments : Java.Lang.Invoke.MethodHandle * int * System.Collections.Generic.IList<Java.Lang.Class> -> Java.Lang.Invoke.MethodHandle
Parâmetros
- target
- MethodHandle
o identificador do método a ser invocado depois que os argumentos são removidos
- pos
- Int32
posição do primeiro argumento a ser removido (zero para a extrema esquerda)
Retornos
um identificador de método que descarta argumentos dos tipos fornecidos, antes de chamar o identificador de método original
- Atributos
Comentários
Produz um identificador de método que descartará alguns argumentos de espaço reservado antes de chamar algum outro identificador de método de destino especificado. O tipo do novo identificador de método será o mesmo que o tipo do destino, exceto que ele também incluirá os tipos de argumento de espaço reservado, em determinada posição.
O pos argumento pode variar entre zero e N, em que N é a aridade do destino. Se pos for zero, os argumentos de espaço reservado precederão os argumentos reais do destino; se pos for N , eles virão depois.
<b>Exemplo:</b><blockquote>
{@code
import static java.lang.invoke.MethodHandles.*;
import static java.lang.invoke.MethodType.*;
...
MethodHandle cat = lookup().findVirtual(String.class,
"concat", methodType(String.class, String.class));
assertEquals("xy", (String) cat.invokeExact("x", "y"));
MethodType bigType = cat.type().insertParameterTypes(0, int.class, String.class);
MethodHandle d0 = dropArguments(cat, 0, bigType.parameterList().subList(0,2));
assertEquals(bigType, d0.type());
assertEquals("yz", (String) d0.invokeExact(123, "x", "y", "z"));
}
</blockquote>
Esse método também é equivalente ao seguinte código: <blockquote>
{@link #dropArguments(MethodHandle,int,Class...) dropArguments}{@code (target, pos, valueTypes.toArray(new Class[0]))}
</blockquote>
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.