Sprache

MethodHandles.DropArguments Methode

Definition

Überlädt

Name Beschreibung
DropArguments(MethodHandle, Int32, Class[])

Erzeugt ein Methodenhandle, das einige Dummyargumente verwirft, bevor ein anderer angegebener Zielmethodenhandle aufgerufen wird.

DropArguments(MethodHandle, Int32, IList<Class>)

Erzeugt ein Methodenhandle, mit dem einige Platzhalterargumente verworfen werden, bevor ein anderes angegebenes Zielmethodenhandle aufgerufen wird.

DropArguments(MethodHandle, Int32, Class[])

Erzeugt ein Methodenhandle, das einige Dummyargumente verwirft, bevor ein anderer angegebener Zielmethodenhandle aufgerufen wird.

[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

Parameter

target
MethodHandle

das Methodenhandle, das aufgerufen werden soll, nachdem die Argumente gelöscht wurden

pos
Int32

Position des ersten zu löschenden Arguments (Null für ganz links)

valueTypes
Class[]

die Art(en) der zu löschenden Argumente

Gibt zurück

ein Methodenhandle, das Argumente der angegebenen Typen abbricht, bevor der ursprüngliche Methodenhandle aufgerufen wird

Attribute

Hinweise

Java Dokumentation für java.lang.invoke.MethodHandles.dropArguments(java.lang.invoke.MethodHandle, int, java.lang.Class).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

DropArguments(MethodHandle, Int32, IList<Class>)

Erzeugt ein Methodenhandle, mit dem einige Platzhalterargumente verworfen werden, bevor ein anderes angegebenes Zielmethodenhandle aufgerufen wird.

[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

Parameter

target
MethodHandle

das Methodenhandle, das aufgerufen werden soll, nachdem die Argumente gelöscht wurden

pos
Int32

Position des ersten zu löschenden Arguments (Null für ganz links)

valueTypes
IList<Class>

die Art(en) der zu löschenden Argumente

Gibt zurück

ein Methodenhandle, das Argumente der angegebenen Typen abbricht, bevor der ursprüngliche Methodenhandle aufgerufen wird

Attribute

Hinweise

Erzeugt ein Methodenhandle, mit dem einige Platzhalterargumente verworfen werden, bevor ein anderes angegebenes Zielmethodenhandle aufgerufen wird. Der Typ des neuen Methodenhandles entspricht dem Typ des Ziels, mit der Ausnahme, dass er auch die Platzhalterargumenttypen an einer bestimmten Position enthält.

Das pos Argument kann zwischen Null und N liegen, wobei N die Arität des Ziels ist. Wenn pos null ist, werden die Platzhalterargumente den tatsächlichen Argumenten des Ziels vorangestellt. Wenn posN ist, werden sie danach kommen.

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

Diese Methode entspricht auch dem folgenden Code: <blockquote>

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

</blockquote>

Java Dokumentation für java.lang.invoke.MethodHandles.dropArguments(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: