Student.java
package student.demo1;
public class Student {
public String name;
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
Test.java
package student.demo1;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
public class Test {
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("student.demo1.Student");//获取字节码文件
Student stu = (Student) clazz.getConstructor().newInstance();//获取空参构造并实例化
Field field = clazz.getField("name");//获取公有变量
field.set(stu, "panda");//设置值
Field field1 = clazz.getDeclaredField("age");
field1.setAccessible(true);//设置暴力反射,允许访问私有变量
field1.set(stu, 10);
System.out.println(stu);
System.out.println(field.get(stu));//获取变量的值
}
}