0

java.lang.reflect.Methodオブジェクトが与えられた場合、それがオーバーライドするメソッドの階層を取得する簡単な方法はありますか。例えば:

class A {
    public void someMethod() { ... }
}

interface B {
    public void someMethod();
}

class C extends A {
    public void someMethod() { ... }
}

class D extends C implements B {
    public void someMethod() { ... }
}

D#someMethodのjava.lang.reflect.Methodオブジェクトが与えられた場合、ツリーを簡単に取得できますか?

D#someMethod
 |
 +- C#someMethod
 |   |
 |   +- A#someMethod
 |
 +- B#someMethod

これを行う簡単な方法、おそらく既存のライブラリがあるはずだと思いますか?

4

1 に答える 1

0

最終的には有用なライブラリが見つからなかったため、assyliasのコメントによると、単にリフレクションを使用して継承をトラバースし、ツリー(スーパークラスとインターフェイスを含む)を構築しました。私はメソッドツリーを構築しませんでしたが、後で「ウォーク」できるクラスツリーを構築しました。

于 2012-10-25T08:29:57.070 に答える