MethodHandle.AsFixedArity Método

Definição

Torna um <>identificador de método arity</em> fixo que, de outra forma, é equivalente ao identificador do método atual.

[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

Retornos

um novo identificador de método que aceita apenas um número fixo de argumentos

Atributos

Comentários

Torna um <>identificador de método arity</em> fixo que, de outra forma, é equivalente ao identificador do método atual.

Se o identificador do método atual não for de #asVarargsCollector aridade variável, o identificador do método atual será retornado. Isso é verdadeiro mesmo se o identificador do método atual não puder ser uma entrada válida para asVarargsCollector.

Caso contrário, o identificador de método de aridade fixa resultante tem o mesmo tipo e comportamento do identificador do método atual, exceto que #isVarargsCollector isVarargsCollector será falso. O identificador do método fixed-arity pode (ou não) ser o argumento anterior para asVarargsCollector.

Aqui está um exemplo de um identificador de método de aridade variável de criação de lista: <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>

Documentação Java para java.lang.invoke.MethodHandle.asFixedArity().

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.

Aplica-se a