MethodHandle.AsFixedArity Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
<Создает дескриптор метода em>fixed arity</em>, который в противном случае эквивалентен текущему дескриптору метода.
[Android.Runtime.Register("asFixedArity", "()Ljava/lang/invoke/MethodHandle;", "GetAsFixedArityHandler", ApiSince=26)]
public virtual Java.Lang.Invoke.MethodHandle? AsFixedArity();
[<Android.Runtime.Register("asFixedArity", "()Ljava/lang/invoke/MethodHandle;", "GetAsFixedArityHandler", ApiSince=26)>]
abstract member AsFixedArity : unit -> Java.Lang.Invoke.MethodHandle
override this.AsFixedArity : unit -> Java.Lang.Invoke.MethodHandle
Возвращаемое значение
новый дескриптор метода, который принимает только фиксированное число аргументов
- Атрибуты
Комментарии
<Создает дескриптор метода em>fixed arity</em>, который в противном случае эквивалентен текущему дескриптору метода.
Если текущий дескриптор метода не имеет #asVarargsCollector переменной arity, возвращается текущий дескриптор метода. Это верно, даже если текущий дескриптор метода не может быть допустимым входным.asVarargsCollector
В противном случае результирующий дескриптор метода с фиксированным arity имеет тот же тип и поведение текущего дескриптора метода, за исключением того, что #isVarargsCollector isVarargsCollector будет false. Дескриптор метода фиксированного arity может быть (или не может) быть предыдущим аргументом asVarargsCollector.
Ниже приведен пример дескриптора метода arity для создания списка: <blockquote>
{@code
MethodHandle asListVar = publicLookup()
.findStatic(Arrays.class, "asList", methodType(List.class, Object[].class))
.asVarargsCollector(Object[].class);
MethodHandle asListFix = asListVar.asFixedArity();
assertEquals("[1]", asListVar.invoke(1).toString());
Exception caught = null;
try { asListFix.invoke((Object)1); }
catch (Exception ex) { caught = ex; }
assert(caught instanceof ClassCastException);
assertEquals("[two, too]", asListVar.invoke("two", "too").toString());
try { asListFix.invoke("two", "too"); }
catch (Exception ex) { caught = ex; }
assert(caught instanceof WrongMethodTypeException);
Object[] argv = { "three", "thee", "tee" };
assertEquals("[three, thee, tee]", asListVar.invoke(argv).toString());
assertEquals("[three, thee, tee]", asListFix.invoke(argv).toString());
assertEquals(1, ((List) asListVar.invoke((Object)argv)).size());
assertEquals("[three, thee, tee]", asListFix.invoke((Object)argv).toString());
}
</blockquote>
Java документации по java.lang.invoke.MethodHandle.asFixedArity().
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".