/////// DisplayType.java /////// import java.io.*; public class DisplayType { public static void displayType(Class cbj, int level, boolean cl) { if ( cbj == null || cbj == root ) return; if ( level == 0 ) out.println((cbj.isInterface() ? "interface " : "class ") + cbj.getName() ); else { for (int i =0 ; i < level ; i++) out.print(" "); out.println( (cbj.isInterface()&&cl ? "implements " : "extends ") + cbj.getName() ); } if ( cbj.isArray() ) return; Class[] faces = cbj.getInterfaces(); if ( faces != null ) for (int i =0 ; i < faces.length ; i++) displayType(faces[i], level+1, !cbj.isInterface()); displayType(cbj.getSuperclass(), level+1, !cbj.isInterface()); } public static void main(String[] args) { try { out = new PrintWriter(System.out); root = Class.forName("java.lang.Object"); for (int i =0 ; i < args.length ; i++) displayType(Class.forName(args[i]),0,false); out.close(); } catch (ClassNotFoundException e) { System.err.println(e.getMessage()); } } private static PrintWriter out; private static Class root; }