普通类包括常见的改性剂(公共,私人,保护,抽象的,静态的,最终strictfp),类名,类的泛型参数,类的继承类,接口和类的实现,注释。

本文java Applet练习如何使用反射来获取上述信息。





进口java.lang.annotation.annotation;

进口java.lang.reflect.modifier;

进口java.lang.reflect.type;

进口java.lang.reflect.typevariable;



公共课test071 {



/ main方法。

public static void main(String { } args){抛出ClassNotFoundException

类<> clazz = Class.forName(java util。ArrayList / /获得);ArrayList对象。

System.out.println(标准名称的类:+ clazz.getcanonicalname());

System.out.println(类改性剂:+ modifier.tostring(clazz.getmodifiers()));



类型参数输出类。

型变量<> typevariables = clazz.gettypeparameters(){ };

system.out.print(泛型参数的类:);

如果(typevariables.length!= 0){

对于(型变量<>型变量:typevariables){

System.out.println(型变量+ T );

}

其他{ }

System.out.println(空);

}



所有类的输出接口。

型接口= clazz.getgenericinterfaces(){ };

System.out.println(所有接口的实现类:);

如果(interfaces.length!= 0){

对于(类型类型:接口){

System.out.println( T +型);

}

其他{ }

System.out.println( T+空);

}



/ / output class. 如果从对象继承,则返回null。

型超= clazz.getgenericsuperclass();

System.out.println(类直接继承类);

如果(父类!= NULL){

System.out.println(父类);

其他{ }

System.out.println(空);

}



所有注释/输出类信息。

注释注释= clazz.getannotations(){ };

System.out.println(注意类:);

如果(annotations.length!= 0){

用于(注释注释:注释){

System.out.println( T+注释);

}

其他{ }

System.out.println(空);

}





}



}



运行结果:

该类的标准名称:java.util.arraylist

类修饰符:公共

类的泛型通用参数:e

由类实现的所有接口:

java.util.list

接口java.util.randomaccess

接口java.lang.cloneable

接口java.io.serializable

类的直接继承类

java.util.abstractlist

类注释:

空的