2017-04-24 63 views
2

可有人請詳細說明這一點,並解釋了兩種方法之間的差異,區別時/你爲什麼會想使用一個比其他Java反射:的getMethods()和getDeclaredMethods()

+7

你讀過javadoc嗎? – assylias

+0

這一切都在Javadoc。 'getMethods':「返回一個包含Method對象的數組,該對象反映了由此Class對象表示的類或接口的所有公共方法,包括由類或接口聲明的以及從超類和超接口繼承的那些方法。 'getDeclaredMethods':「返回一個包含Method對象的數組,該對象反映了由該Class對象表示的類或接口的所有已聲明方法,包括public,protected,default(package)訪問和private方法,但不包括繼承方法。 –

回答

13

getDeclaredMethods包括所有方法均由類本身聲明,而getMethods僅返回公共方法,但也返回從基類繼承的方法(此處來自java.lang.Object)。

The Javadoc本來會告訴你的。

+1

「也」可能暗示'getMethods'返回從'getDeclaredMethods'返回的附加元素,這不是必須的。值得一提的是'getMethods'忽略了非公有方法。 – Pshemo