1. 程式人生 > >執行時型別資訊(RTTI)之遞迴列印類資訊

執行時型別資訊(RTTI)之遞迴列印類資訊

深度優先

public class ClassPrint {
	private static void printSupers(Class<?> clazz) {
		String name = clazz.getCanonicalName();
		System.out.println(name);
		if(name.equals("java.lang.Object")) return;
		if(!clazz.isInterface()) {
			Class<?> superClazz = clazz.getSuperclass();
			printSupers(superClazz);
		}
		Class<?>[] superInfArr=clazz.getInterfaces();
		for(Class<?> superInf:superInfArr) {
			printSupers(superInf);
		}
	}
	public static void printSupers(Object obj) {
		printSupers(obj.getClass());
	}
}