次のように仮定します。あるメソッドを宣言するいくつかのスーパークラスまたはインタフェースがあります:Base.doSmth()
。このメソッドを実装するいくつかの継承クラスもあります:Inherited.doSmth()
。 Inherited.doSmth()
のリフレクション(Method
)があり、リフレクションにアクセスできるように基本クラスがわかります(Base.class
)。問題は、Base.doSmth()
メソッドでリフレクションを取得する方法ですか?もちろん、Base
のすべてのメソッドを繰り返し処理することができ、名前、パラメータ、および戻り値の型で1つを見つけることができますが、すでに解決策がいくつかあります。すべてはSpring関連のクラスで発生するので、コードはすでにSpringに結合されているので、ユーティリティを使用することはOKです。特定の親クラスで宣言されたメソッドを取得する方法は?
ありがとうございました。
もちろん、これはOKですが、私は、org.springframework.aop.support.AopUtils.getMostSpecificMethod()のように、この作業を行ういくつかのSpring util-methodがあると思います。 –
ああ、春には(私は知らないかもしれませんが)ユーティリティメソッドがありませんが、Apache Commons Lang3にはClassUtilsという名前のユーティリティクラスがあり、このクラスにはgetAllSuperclassesというメソッドがあります。 。 – MJM
ありがとうMJM、私はApache Commons Langを調べます。それ以外の場合は、手動で 'Method []'配列を繰り返し実行します。 –