显示一个对象的继承等级,Class类的应用

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

这个小程序显示了一个给定对象的继承等级,采用了递归算法,可以显示对象继承的所有类和实现的所有接口。

//Hierarchy.java

import java.util.*;

import javax.swing.*;

public class Hierarchy {

public static void showSuperClasses(Class c) {

Class superClass = c.getSuperclass();

if (superClass != null) {

prt(superClass.getName());

showSuperClasses(superClass);

}

}

public static void showSuperClasses(Object o) {

showSuperClasses(o.getClass());

}

public static void showInterfaces(Class c) {

Class[] interfaces = c.getInterfaces();

for (int i = 0; i < interfaces.length; i++) {

prt(interfaces[i].getName());

showInterfaces(interfaces[i]);

}

}

public static void showInterfaces(Object o) {

showInterfaces(o.getClass());

}

public static void showHierarchy(Class c) {

Class superClass = c.getSuperclass();

Class[] interfaces = c.getInterfaces();

if (superClass != null) {

prt("extends: ");

prt(superClass.getName());

showHierarchy(superClass);

}

for (int i = 0; i < interfaces.length; i++) {

prt("implements:");

prt(interfaces[i].getName());

showHierarchy(interfaces[i]);

}

}

public static void showHierarchy(Object o) {

showHierarchy(o.getClass());

}

public static void prt(String s) {

System.out.println(s);

}

public static void main(String[] args) {

//showSuperClasses(new ArrayList());

//showInterfaces(new ArrayList());

showHierarchy(new Z1());

}

}

interface A1 {}

interface A2

extends A1 {}

interface B1 {}

interface B2

extends B1 {}

interface C1 {}

interface C2

extends C1 {}

class X1 implements A2{}

class Y1 implements B2{}

class Z1 extends X1 implements C2{}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航