MethodHandle.AsFixedArity Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.