Lenguaje

MethodHandle.AsFixedArity Método

Definición

Hace que un <identificador de método em>sea arity</em> fijo, que de lo contrario es equivalente al identificador del método actual.

[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

Devoluciones

un nuevo identificador de método que acepta solo un número fijo de argumentos

Atributos

Comentarios

Hace que un <identificador de método em>sea arity</em> fijo, que de lo contrario es equivalente al identificador del método actual.

Si el identificador del método actual no es de #asVarargsCollector aridad de variable, se devuelve el identificador del método actual. Esto es true incluso si el identificador del método actual no pudo ser una entrada válida para asVarargsCollector.

De lo contrario, el identificador del método de aridad fija resultante tiene el mismo tipo y comportamiento del identificador de método actual, excepto que #isVarargsCollector isVarargsCollector será false. El identificador del método de aridad fija puede (o no) ser el argumento anterior para asVarargsCollector.

Este es un ejemplo de un identificador de método de aridad de variable de creación de listas: <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 documentación para java.lang.invoke.MethodHandle.asFixedArity().

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a