读书人

巧用反照机制修改私有变量值

发布时间: 2013-04-20 19:43:01 作者: rapoo

巧用反射机制修改私有变量值
package com.test.reflection; public class Test {private String str = "C++"; public String getStr() {return str;} }

?

?

?

为了将私有变量str里保存的值“C++”修改为“java”,我建立另一个测试类,代码如下:

package com.test.reflection; import java.lang.reflect.Field; public class Main { /*** @param args* @throws NoSuchFieldException * @throws SecurityException * @throws IllegalAccessException * @throws IllegalArgumentException */public static void main(String[] args) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {// TODO Auto-generated method stubTest test = new Test();Class clacc = Test.class;Field field = clacc.getDeclaredField("str");field.setAccessible(true);//设置true,使其不在检查访问修饰符。field.set(test, "java");System.out.println(test.getStr()); } }

?

读书人网 >编程

热点推荐