一类的所有超类

我有一个类扩展到另一个类,该类扩展到另一个类。

class 1 extends class 2 class 2 extends class 3 class 3 extends class 4 class 4 extends class 5 class 5 extends class 6 

现在我想找到1级的所有超类。

任何人都知道如何在java中做到这一点?

使用Class.getSuperClass()遍历层次结构。

 Class C = getClass(); while (C != null) { System.out.println(C.getName()); C = C.getSuperclass(); } 

您可以使用getSuperclass()直到Object

但是首先阅读文档以了解它在接口等情况下返回的内容。在同一页面上可以使用更多方法。

Class1的实例开始递归调用getSuperclass ,直到到达Object

使用reflection:

 public static List getSuperClasses(Object o) { List classList = new ArrayList(); Class class= o.getClass(); Class superclass = class.getSuperclass(); classList.add(superclass); while (superclass != null) { class = superclass; superclass = class.getSuperclass(); classList.add(superclass); } return classList; } 

作为变体,使用紧密循环,您可以使用for循环:

 for (Class super_class = target_class.getSuperclass(); super_class != null; super_class = super_class.getSuperclass()) // use super class here 

其他答案是关于使用Class.getSuperclass() 。 但你必须反复这样做。 就像是

 Class superClass = getSuperclass(); while(superClass != null) { // do stuff here superClass = superClass.getSuperclass(); }