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 声明类型与 N 声明类型相同或子类型M 的声明类型(显然,如果 M 和 N 的声明类型是相同的类型,则 M 和 N 是相同的方法)。</li></ol></li li>>< 此算法的结果是步骤 3 中所有选定方法的并集。</li></ol>

在 1.1 中添加。

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

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

适用于

另请参阅