运行时类型信息(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());
	}
}

猜你喜欢

转载自blog.csdn.net/Martian158/article/details/84450939