언어

MethodHandle.AsFixedArity 메서드

정의

현재 메서드 핸들과 <>동일한 em 고정 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 고정 arity</em> 메서드 핸들을 만듭니다.

현재 메서드 핸들이 변수 #asVarargsCollector 없는 경우 현재 메서드 핸들이 반환됩니다. 현재 메서드 핸들이 유효한 입력 asVarargsCollector이 될 수 없는 경우에도 마찬가지입니다.

그렇지 않으면 결과 고정-arity 메서드 핸들은 false라는 점을 제외하고 현재 메서드 핸들의 형식과 동작이 #isVarargsCollector isVarargsCollector 동일합니다. 고정-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.lang.invoke.MethodHandle.asFixedArity()Java 설명서

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

적용 대상