MethodHandles.Lookup.FindStatic(Class, String, MethodType) 方法

定义

为静态方法生成方法句柄。

[Android.Runtime.Register("findStatic", "(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public Java.Lang.Invoke.MethodHandle FindStatic (Java.Lang.Class refc, string name, Java.Lang.Invoke.MethodType type);
[<Android.Runtime.Register("findStatic", "(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
member this.FindStatic : Java.Lang.Class * string * Java.Lang.Invoke.MethodType -> Java.Lang.Invoke.MethodHandle

参数

refc
Class

从中访问方法的类

name
String

方法的名称

type
MethodType

方法的类型

返回

所需方法句柄

属性

注解

为静态方法生成方法句柄。 方法句柄的类型将是该方法的类型。 (由于静态方法不采用接收方,因此没有其他接收器参数插入到方法句柄类型中,因为方法句柄类型也#findVirtual findVirtual#findSpecial findSpecial存在。)该方法及其所有参数类型都必须可供查找对象访问。

返回的方法句柄将具有 MethodHandle#asVarargsCollector 变量 arity,前提是设置了该方法的变量 arity 修饰符位(0x0080)。

如果调用返回的方法句柄,将初始化该方法的类(如果尚未初始化)。

<b>示例:</b><blockquote>

{@code
            import static java.lang.invoke.MethodHandles.*;
            import static java.lang.invoke.MethodType.*;
            ...
            MethodHandle MH_asList = publicLookup().findStatic(Arrays.class,
              "asList", methodType(List.class, Object[].class));
            assertEquals("[x, y]", MH_asList.invoke("x", "y").toString());
            }

</blockquote>

适用于 . 的 java.lang.invoke.MethodHandles.Lookup.findStatic(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于