package test.my.chap0302; import java.lang.annotation.Annotation; import java.lang.reflect.Modifier; import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; public class ClassDeclarationView { /** * @param args * @throws ClassNotFoundException */ @SuppressWarnings("unchecked") public static void main(String[] args) throws ClassNotFoundException { Class<?> classz = Class.forName("java.util.ArrayList"); System.out.println("标准的类名:"+classz.getCanonicalName()); System.out.println("标准的修饰符:"+Modifier.toString(classz.getModifiers())); TypeVariable[] typeVariable = classz.getTypeParameters(); //输出类的泛型参数 if(typeVariable.length!=0){ for(TypeVariable type :typeVariable){ System.out.println("泛型参数: "+type); } }else{ System.out.println("没有参数!"); } Type[] interfaces = classz.getInterfaces(); if(interfaces.length!=0){ for(Type ty:interfaces){ System.out.println("实现的所有接口: "+ty); } }else{ System.out.println(" "+"空"); } //输出类的直接继承类 Type supers = classz.getGenericSuperclass(); if(supers!=null){ System.out.println("直接继承类是: "+supers); }else{ System.out.println("null"); } //输出所有的注解信息 Annotation[] annotation = classz.getAnnotations(); if(annotation.length!=0){ for(Annotation at:annotation){ System.out.println(" "+at); } }else{ System.out.println("没有注解信息!"); } } }