上代码
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class Test04 {
public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, NoSuchMethodException {
Class<?> aClass = Class.forName("com.yiheng.yiheng_02_reflection.Person");
System.out.println(aClass);
System.out.println("获得该类的名字");
System.out.println(aClass.getName());
System.out.println(aClass.getSimpleName());
System.out.println("获得类的属性");
Field[] fields = aClass.getFields();
for (Field field : fields) {
System.out.println(field);
}
Field[] declaredFields = aClass.getDeclaredFields();
for (Field declaredField : declaredFields) {
System.out.println(declaredField);
}
System.out.println(aClass.getDeclaredField("name"));
System.out.println("获得方法");
Method[] methods = aClass.getMethods();
for (Method method : methods) {
System.out.println("public方法:"+method);
}
Method[] declaredMethods = aClass.getDeclaredMethods();
for (Method declaredMethod : declaredMethods) {
System.out.println("全部方法:"+declaredMethod);
}
System.out.println(aClass.getDeclaredMethod("getName",null));
System.out.println(aClass.getDeclaredMethod("setName", String.class));
System.out.println("类的构造器");
Constructor<?>[] constructors = aClass.getConstructors();
for (Constructor<?> constructor : constructors) {
System.out.println(constructor);
}
Constructor<?>[] declaredConstructors = aClass.getDeclaredConstructors();
for (Constructor<?> declaredConstructor : declaredConstructors) {
System.out.println(declaredConstructor);
}
}
}