Java 通过反射改变私有变量的值
直接上代码
import java.lang.reflect.Field;
public class Main {
public static void main(String[] args) throws Exception {
TestA testA = new TestA();
Class class1 = TestA.class;
Field field = class1.getDeclaredField("i"); // getDeclaredField可以获取私有的变量
field.setAccessible(true); // 为true时可以访问私有类型变量
field.set(testA, 111); // 将i的值设置为111
System.out.println(testA.getI()); // 通过getI方法输出i的值
}
}
class TestA {
private Integer i = 10;
public Integer getI() {
return i;
}
}
结果:111