2011-05-25 79 views
2

假設我有這些類:選擇當前類的方法,而不是繼承的類

class A{ 
    void f(); 
} 

class B extends A{ 
    void g(); 
} 

什麼我會當我這樣做:

Class.forename("B").getMethods(); 

我將獲得方法fg ????

如果是的話,那麼如何獲得當前只是類的方法,而不是它的父類(在這個例子中,方法g())????

感謝額頭!代替的getMethods

+2

更多的問號的問題變得更強大,它看起來! – bestsss 2011-05-25 09:48:27

回答

8

使用Class.getDeclaredMethods

這(由getDeclaredMethods返回方法)包括publicprotecteddefault(包)訪問,並 private方法,但不包括 繼承的方法。

0

使用getDeclaredMethods()API。

從Java API參考 -

返回Method對象反映此Class對象所表示的類或接口聲明的所有方法的一個數組。這包括公共,受保護,默認(包)訪問和私有方法,但不包括繼承的方法。