Class.GetMethods 方法

定义

返回一个数组,其中包含 Method 一个对象,该对象反映由此 Class 对象表示的类或接口的所有公共方法,包括类或接口声明的方法以及从超类和超接口继承的方法。

[Android.Runtime.Register("getMethods", "()[Ljava/lang/reflect/Method;", "")]
public Java.Lang.Reflect.Method[] GetMethods ();
[<Android.Runtime.Register("getMethods", "()[Ljava/lang/reflect/Method;", "")>]
member this.GetMethods : unit -> Java.Lang.Reflect.Method[]

返回

Method[]

表示此类的公共方法的 对象的数组Method

属性

注解

返回一个数组,其中包含 Method 一个对象,该对象反映由此 Class 对象表示的类或接口的所有公共方法,包括类或接口声明的方法以及从超类和超接口继承的方法。

如果此 Class 对象表示数组类型,则返回的数组 Method 具有由数组类型从 Object继承的每个公共方法的对象。 它不包含 Method 的 对象 clone()

如果此 Class 对象表示接口,则返回的数组不包含来自 Object的任何隐式声明的方法。 因此,如果此接口或其任何超接口中未显式声明任何方法,则返回的数组的长度为 0。 (请注意, Class 表示类的对象始终具有从 Object.)

返回的数组永远不会包含名称为“”<init>或“”<clinit>的方法。

返回的数组中的元素不会按任何特定顺序排序。

通常,使用以下 4 步算法计算结果。 让 C 作为由此Class对象表示的类或接口:<ol<>li> 方法的联合由 ol <type=“a”<>li> C 声明的公共实例和静态方法组成,由 #getDeclaredMethods() 返回并筛选为仅包含公共方法。</li><li> 如果 C 不是 类Object,则包括以递归方式在 C 的超类上调用此算法的结果。</li><li> 包括以递归方式在 C 的所有直接超接口上调用此算法的结果,但仅包括实例方法。<步骤 1 中的 /li></ol></li><li> Union 分区为具有相同签名 (名称、参数类型) 和返回类型的方法子集。</li><li> 在每个此类子集中,仅选择最具体的方法。 让方法 M 是具有相同签名和返回类型的一组方法的方法。 如果同一集中没有此类方法 N != M,则 M 最具体,因此 N 比 M 更具体。如果:<ol type=“a”<>li> N 由类声明,M 由接口声明;或</li><li> N 和 M 均由类声明,或者由接口声明,N 的声明类型与 或 的子类型相同,则 M 更具体。M 的声明类型清楚地 (,如果 M 和 N 的声明类型是相同的类型,则 M 和 N 是同一方法) 。</li></ol></li><li> 此算法的结果是步骤 3 中所有选定方法的并集。</li></ol>

在 1.1 中添加。

java.lang.Class.getMethods()Java 文档。

此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。

适用于

另请参阅