Linguaggio

MethodHandles.DropArguments Metodo

Definizione

Overload

Nome Descrizione
DropArguments(MethodHandle, Int32, Class[])

Produce un handle di metodo che scarterà alcuni argomenti fittizi prima di chiamare un altro handle del metodo di destinazione specificato.

DropArguments(MethodHandle, Int32, IList<Class>)

Produce un handle di metodo che eliminerà alcuni argomenti segnaposto prima di chiamare un altro handle del metodo di destinazione specificato.

DropArguments(MethodHandle, Int32, Class[])

Produce un handle di metodo che scarterà alcuni argomenti fittizi prima di chiamare un altro handle del metodo di destinazione specificato.

[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

Parametri

target
MethodHandle

handle del metodo da richiamare dopo l'eliminazione degli argomenti

pos
Int32

posizione del primo argomento da eliminare (zero per l'estrema sinistra)

valueTypes
Class[]

i tipi degli argomenti da eliminare

Valori restituiti

handle di metodo che elimina gli argomenti dei tipi specificati, prima di chiamare l'handle del metodo originale

Attributi

Commenti

Documentazione java per java.lang.invoke.MethodHandles.dropArguments(java.lang.invoke.MethodHandle, int, java.lang.Class).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a

DropArguments(MethodHandle, Int32, IList<Class>)

Produce un handle di metodo che eliminerà alcuni argomenti segnaposto prima di chiamare un altro handle del metodo di destinazione specificato.

[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

Parametri

target
MethodHandle

handle del metodo da richiamare dopo l'eliminazione degli argomenti

pos
Int32

posizione del primo argomento da eliminare (zero per l'estrema sinistra)

valueTypes
IList<Class>

i tipi degli argomenti da eliminare

Valori restituiti

handle di metodo che elimina gli argomenti dei tipi specificati, prima di chiamare l'handle del metodo originale

Attributi

Commenti

Produce un handle di metodo che eliminerà alcuni argomenti segnaposto prima di chiamare un altro handle del metodo di destinazione specificato. Il tipo del nuovo handle di metodo sarà uguale al tipo della destinazione, ad eccezione del fatto che includerà anche i tipi di argomento segnaposto, in una determinata posizione.

L'argomento pos può variare tra zero e N, dove N è l'arità della destinazione. Se è zero, gli argomenti segnaposto precedono gli argomenti reali della destinazione. Se pospos è N , verranno visualizzati dopo.

<b>Esempio:</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>

Questo metodo equivale anche al codice seguente: <blockquote>

{@link #dropArguments(MethodHandle,int,Class...) dropArguments}{@code (target, pos, valueTypes.toArray(new Class[0]))}

</blockquote>

Documentazione java per java.lang.invoke.MethodHandles.dropArguments(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a