package com.qf.reflection;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class TestReflection {
public static void main(String[] args) {
// Class
// 获得一个类的Class对象 有三种方式
try {
Class clazz1 = Class.forName("java.lang.String");
// 第二种
Class clazz2 = String.class;
// 第三种
String string = new String();
Class clazz3 = string.getClass();
// 得到String类的所有属性
System.out.println("String类的所有属性");
Field[] fields = clazz1.getDeclaredFields();
for (Field field : fields) {
System.out.println(field);
}
System.out.println("String类的所有方法");
Method methods[] = clazz1.getDeclaredMethods();// 忽略修饰符 得到所有方法
// clazz1.getMethods(); 只能得到有访问权限的所有方法
for (Method method : methods) {
System.out.println(method);
}
System.out.println("String类的所有构造方法");
Constructor constructors[] = clazz1.getDeclaredConstructors();
for (Constructor constructor : constructors) {
System.out.println(constructor);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}