package Fanshe;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
//需求:通过反射实现操作
//Student s=new Student()
//s.name="林青霞";
//s.age=30; sout。。。。。。
public class Fanshedeom4 {
public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
//得到class对象
Class<?> clss = Class.forName("Fanshe.Student");
//获取所以成员变量,遍历
Field[] allfields = clss.getDeclaredFields();
for (Field allfield : allfields) {
System.out.println(allfield);
}
//得到成员变量
Field name = clss.getDeclaredField("name");
Field age = clss.getDeclaredField("age");
//获取无参构造
Constructor<?> stu = clss.getConstructor();
//创建对象
Object obj = stu.newInstance();
name.set(obj,"林青霞");
// age为私有变量,使用时需要使用暴力反射
age.setAccessible(true);
age.set(obj,20);
System.out.println(obj);
}
}