MethodHandles.DropArguments Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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
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)
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>
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.