在Java中获取类层次结构?

7

我有一个具体的问题,Eclipse可以完美解决,但我需要一个编程解决方案。我想做的是获取我提供的任何类的“类型层次结构”。Eclipse在按下Ctrl+T时显示了一个解决方案,但它是如何实现的?是否有可用的API可以使用?

3个回答

7

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

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


2

Java有一个反射API,可以用来确定您拥有的任何类的基类,以及该特定类实现的任何接口。然而,确定从该类继承的类会更加困难。反射API还可以让您做很多其他的事情,比如确定该类的成员是什么,甚至调用该类的方法等。

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

如果您喜欢这个答案并且回答了您的问题,您应该通过点击答案旁边的复选标记“接受”它。 - Avi

1

然而,找到一个类的所有子类并不容易。 为此,您必须加载类路径中的所有类(可能有成千上万个),并自己构建这棵树,可能需要通过自定义ClassLoader(只有当您对痛苦有抵抗力时才想去那里)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接