2011-09-30 64 views
0

我正在使用getMethod(String name)函數來加載一個方法,但它總是拋出MethodNotFoundException。如果我運行class.getMethods(),我正在尋找的方法就是使用我用來傳遞給getMethod的確切名稱。我試圖加載的方法是一個靜態方法,所以我不知道如果getMethod不適用於靜態方法。任何幫助?Java getMethod拋出方法未發現異常?

+2

讓我們看看失敗的代碼以及您認爲驗證代碼的輸出。 :) – corsiKa

+0

它也適用於靜態方法。這不是問題。 - > http://en.wikibooks.org/wiki/Java_Programming/Reflection/Overview – MasterCassim

回答

6

如果您正在查找的方法有任何參數,則還需要將它們的類型傳遞給getMethod()。 Java方法的簽名(唯一定義和標識方法的東西)由方法名稱的參數類型組成。

http://download.oracle.com/javase/tutorial/java/javaOO/methods.html

+3

+1,如果它是非公開的,你需要使用'getDeclaredMethod'來代替。 –

0

名稱是不夠的。您必須指定您認爲該方法需要的參數類型,否則查詢可能不明確(因爲Java支持重載)。