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[]
Типы аргументов, которые нужно удалить
Возвращаемое значение
Дескриптор метода, который удаляет аргументы заданных типов перед вызовом исходного дескриптора метода.
- Атрибуты
Комментарии
Части этой страницы — это изменения на основе работы, созданной и общей 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
положение первого аргумента для удаления (ноль для крайнего левого)
Возвращаемое значение
Дескриптор метода, который удаляет аргументы заданных типов перед вызовом исходного дескриптора метода.
- Атрибуты
Комментарии
Создает дескриптор метода, который будет удалять некоторые аргументы заполнителя перед вызовом другого заданного целевого дескриптора метода. Тип нового дескриптора метода будет совпадать с типом целевого объекта, за исключением того, что он также будет включать типы аргументов заполнителя в определенной позиции.
Аргумент 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>
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".