2017-04-24 9 views
2

誰かがこの上で手の込んだ、そして2つの方法の間の違いを説明し、とき/なぜあなたは他のものより1Javaのリフレクション:getMethodsの差()とgetDeclaredMethods()

+7

javadocを読んだことがありますか? – assylias

+0

すべてがJavadocにあります。 'getMethods':"クラスまたはインタフェースによって宣言されたクラスやスーパークラスやスーパーインタフェースから継承されたものを含む、このClassオブジェクトが表すクラスまたはインタフェースのすべてのパブリックメソッドを反映するMethodオブジェクトを含む配列を返します。 'getDeclaredMethods':" public、protected、default(package)アクセス、およびprivateメソッドを含むが、継承されたメソッドを除く、このClassオブジェクトが表すクラスまたはインタフェースのすべての宣言されたメソッドを反映するMethodオブジェクトを含む配列を返します。 –

答えて

13

getDeclaredMethods含んを使用したいと思うくださいすることができgetMethodsはパブリックメソッドだけを返しますが、基底クラス(ここではjava.lang.Object)から継承したメソッドも返します。すべてのメソッドはをクラス自体によって宣言しました。

The Javadocがあなたに言ったでしょう。

+1

「また」は、 'getMethods'が' getDeclaredMethods'から返される追加の要素を返すことを示唆するかもしれませんが、これは真実である必要はありません。 'getMethods'は非公開のメソッドを無視することに言及する価値があります。 – Pshemo

関連する問題