在Java中获取类层次结构?

我有一个特定的问题,Eclipse完美解决,但我需要一个程序化的解决方案。 我想要做的是获得我提供的任何类的“类型层次结构”。 Eclipse确实显示了按Ctrl + T的解决方案,但是它是如何实现的呢? 有没有可用的API,以便我可以使用它们?

您可以使用Java的reflectionAPI来获取有关运行时类型的信息。

例如,您可以使用Class.getSuperclass()向上遍历类型树,并查找类的父级。

Java有一个Reflection API,您可以使用它来确定您拥有的任何类的基类,以及特定类实现的任何接口。 但是,确定从该类inheritance的类将会更加困难。 reflectionAPI还允许您执行许多其他操作,也可以确定该类的成员是什么,甚至调用该类的方法等等。

public void DisplaySuperClass(Class c) { System.out.println(c.getSuperclass().getName()); } 

但是,没有简单的方法来查找类的所有子类。 为此你必须加载你的类路径中的所有类(可能是几千个)并自己构建这个树,可能是通过一个自定义的ClassLoader (并且只有你能抵抗你想去的痛苦)