Язык

MethodHandles.DropArguments Метод

Определение

Перегрузки

Имя. Описание
DropArguments(MethodHandle, Int32, Class[])

Создает дескриптор метода, который будет удалять некоторые фиктивные аргументы перед вызовом другого заданного целевого дескриптора.

DropArguments(MethodHandle, Int32, IList<Class>)

Создает дескриптор метода, который будет удалять некоторые аргументы заполнителя перед вызовом другого заданного целевого дескриптора метода.

DropArguments(MethodHandle, Int32, Class[])

Создает дескриптор метода, который будет удалять некоторые фиктивные аргументы перед вызовом другого заданного целевого дескриптора.

[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

Параметры

target
MethodHandle

Дескриптор метода для вызова после удаления аргументов

pos
Int32

положение первого аргумента для удаления (ноль для крайнего левого)

valueTypes
Class[]

Типы аргументов, которые нужно удалить

Возвращаемое значение

Дескриптор метода, который удаляет аргументы заданных типов перед вызовом исходного дескриптора метода.

Атрибуты

Комментарии

Java документации по java.lang.invoke.MethodHandles.dropArguments(java.lang.invoke.MethodHandle, int, java.lang.Class).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к

DropArguments(MethodHandle, Int32, IList<Class>)

Создает дескриптор метода, который будет удалять некоторые аргументы заполнителя перед вызовом другого заданного целевого дескриптора метода.

[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

Параметры

target
MethodHandle

Дескриптор метода для вызова после удаления аргументов

pos
Int32

положение первого аргумента для удаления (ноль для крайнего левого)

valueTypes
IList<Class>

Типы аргументов, которые нужно удалить

Возвращаемое значение

Дескриптор метода, который удаляет аргументы заданных типов перед вызовом исходного дескриптора метода.

Атрибуты

Комментарии

Создает дескриптор метода, который будет удалять некоторые аргументы заполнителя перед вызовом другого заданного целевого дескриптора метода. Тип нового дескриптора метода будет совпадать с типом целевого объекта, за исключением того, что он также будет включать типы аргументов заполнителя в определенной позиции.

Аргумент pos может варьироваться от нуля до N, где N — это arity целевого объекта. Если pos значение равно нулю, аргументы заполнителя будут предшествуть реальным аргументам целевого объекта; если pos они будут поступать после.

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

Этот метод также эквивалентен следующему коду: <blockquote>

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

</blockquote>

Java документации по java.lang.invoke.MethodHandles.dropArguments(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к