2013-05-20 105 views
1

使用getMethod()時,我遇到了一個問題。我在調用getMethod()的類中有很多父類方法。但是,我不想讓getMethod注意到父類的方法,只有我正在查看的特定類。例如...getMethod避免父類

class superClass { 
    boolean equals(Object obj) { 
     .... 
    } 
} 

... 

import superClass 

class subClass { 
    ... 
} 

現在,如果我使用getMethod這樣的...

try{ 
    Class[] args = new Class[1]; 
    args[0] = Object.class; 
    Method equalsMethod = subClass.getMethod("equals", args); 
} 

catch(NoSuchMethodException ex){ 
... 
} 

我不希望這從超類,它是目前equals方法拉這樣做。我想知道的是如果我調用getMethod的類(在本例中爲subClass)包含方法equals()。

這樣做的任何方式?任何幫助,將不勝感激。

回答

4

給getDeclaredMethod(String,args)一試。它只會返回你的類顯式聲明的方法,所以不涉及超類。

+0

Stackoverflow ...不斷向我展示我在文檔中錯過的愚蠢的小事情。哈哈。謝謝,這工作完美。 – Scalahansolo

0

改爲使用subClass.getDeclaredMethod()。這樣你就可以得到在你的課堂上明確聲明的方法或MethodNotFoundException