给定一个java.lang.reflect.Method对象,是否有一种简单的方法来获取它覆盖的方法的层次结构

时间:2012-10-17 12:48:12

标签: java reflection

给定一个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

猜测必须有一种简单的方法,可能是现有的库?

1 个答案:

答案 0 :(得分:0)

最终没有找到有用的库,因此根据assylias注释只是使用反射来遍历继承并构建一个树(包括超类和接口)。我没有构建一个方法树,而是一个可以随后“走路”的类树。