首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2013-04-20 
巧用反射机制修改私有变量值package com.test.reflection public class Test {private String str C++

巧用反射机制修改私有变量值
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()); } }

?

热点排行