語言

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物件。 它不包含 Methodclone()物件。

若此Class物件代表介面,則回傳陣列不包含任何隱含宣告的方法。Object 因此,若此介面或其任何超介面中未明確宣告方法,則回傳陣列長度為 0。 (請注意,代表類別的 Class 物件總是有公開方法,這些方法繼承自 Object。)

回傳的陣列中絕不包含名稱為「<init>」或「<clinit>」的方法。

回傳陣列中的元素未被排序,且沒有特定順序。

一般而言,結果的計算方式如下為四步驟演算法。 設 C 為此Class物件所代表的類別或介面:<ol><li> 一個方法聯集由 ol 類型=“a”<>li< 組成>,C 為宣告的公開實例與靜態方法,並由 C 回傳#getDeclaredMethods()並過濾以僅包含公開方法。</li><li> 如果 C 是 以外的Object類別,則包含對 C 的超類遞迴調用此演算法的結果。</li><li> 包含在所有 C 直接超介面上遞迴調用此演算法的結果,但僅包含實例方法。</li></ol></li><li 從>第一步開始,聯集被劃分為具有相同簽名(名稱、參數類型)及回傳類型的方法子集。</li><li> 在每個子集中,只挑選最具體的方法。 設方法M為一組具有相同簽名與回傳類型的方法。 M 最具體的是:若同一集合中不存在 N != M 的方法,使得 N 比 M 更具體。N 比 M 更具體,當當:<ol 型=“a”><li> N 由類別宣告,M 由介面宣告;或< li><li N> 與 M 皆由類別或兩者皆由介面宣告,且 N 宣告的型別與 或 的子型相同 。M 的宣告型別(顯然,如果 M 和 N 的宣告型別是同一型態,那麼 M 和 N 就是相同的方法)。</li></ol></li><li> 這個演算法的結果是將步驟3中所有選定方法的聯集。</li></ol>

在 1.1 版本中加入。

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

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

另請參閱