MethodHandle.AsFixedArity Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.