查看类的成员
源代码
package edu.test.ch7;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ClassViewer {
public static void main(String[] args) throws ClassNotFoundException {
Class> clazz=Class.forName("java.util.ArrayList");
System.out.println("类的标准名称:" + clazz.getCanonicalName());
Constructor>[] constructors=clazz.getConstructors();// 获得该类对象的所有构造方法
System.out.println("类的构造方法:");
if (constructors.length !=0) {
for (Constructor> constructor : constructors) {
System.out.println("\t" + constructor);// 输出构造方法
}
} else {
System.out.println("\t空");
}
Field[] fields=clazz.getDeclaredFields();// 获得该类对象的所有非继承域
System.out.println("类的非继承域变量:");
if (fields.length !=0) {
for (Field field : fields) {
System.out.println("\t" + field);// 输出非继承域
}
} else {
System.out.println("\t空");
}
Method[] methods=clazz.getDeclaredMethods();// 获得该类对象的所有非继承方法
System.out.println("类的非继承方法:");
if (methods.length !=0) {
for (Method method : methods) {
System.out.println(method);// 输出非继承方法
}
} else {
System.out.println("\t空");
}
}
}
运行结果:

内部类信息
package edu.test.ch7;
import java.lang.reflect.Modifier;
import java.lang.reflect.Type;
public class NestedClassInformation {
public static void main(String[] args) throws ClassNotFoundException {
Class> cls=Class.forName("java.awt.geom.Point2D");
Class>[] classes=cls.getDeclaredClasses();// 获得代表内部类的Class对象组成的数组
for (Class> clazz : classes) {// 遍历Class对象数组
System.out.println("类的标准名称:" + clazz.getCanonicalName());
System.out.println("类的修饰符:" + Modifier.toString(clazz.getModifiers()));
Type[] interfaces=clazz.getGenericInterfaces();// 获得所有泛型接口
System.out.println("类所实现的接口:");
if (interfaces.length !=0) {// 如果泛型接口个数不是0则输出
for (Type type : interfaces) {
System.out.println("\t" + type);
}
} else {
System.out.println("\t" + "空");
}
Type superClass=clazz.getGenericSuperclass();// 获得直接父类
System.out.print("类的直接继承类:");
if (superClass !=null) {// 如果直接父类不是Object就输出
System.out.println(superClass);
} else {
System.out.println("空");
}
}
}
}

- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
