package com.ljy;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
/**
*
* @ClassName: TestClass
* @Description: 通过反射获取指定类的所有信息
* @author ljy
* @date 2019年9月12日 上午11:29:02
*
*/
public class TestClass {
public static void main(String[] args) {
try {
Class clazz = Class.forName("com.ljy.Teacher"); // 需要查看类的路径
System.out.println("---------类的成员变量---------");
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
System.out.println("属性名称:" + field.getName() + " 类型:" + field.getType());
}
System.out.println("---------类的成员方法---------");
Method[] methods = clazz.getDeclaredMethods();
for (Method method : methods) {
System.out.println("方法名称:" + method.getName());
System.out.println(method);
}
System.out.println("---------类的构造方法---------");
@SuppressWarnings("rawtypes")
Constructor[] constructors = clazz.getDeclaredConstructors();
for (@SuppressWarnings("rawtypes")
Constructor constructor : constructors) {
System.out.println(constructor);
}
System.out.println("--------类所在包、完整名称、父类----------");
System.out.println(clazz.getPackage());
System.out.println(clazz);
System.out.println(clazz.getSuperclass());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}