读书人

用java反照机制实现的比较不可思议的一

发布时间: 2013-07-26 11:27:42 作者: rapoo

用java反射机制实现的比较不可思议的一件事
这个例子一共两个java文件:

package com.spring;import java.lang.reflect.Field;public class Main {public static void main(String[] args) throws Exception {//正常情况下Test类里面的str属性值是没法改变的,但是通过反射的强大功能是可以实现的Test test = new Test();Class clazz = Test.class;Field field = clazz.getDeclaredField("str");//设置为true表示反射会压制java语言的访问检查,也就是java不再检查私有的成员变量,此时反射也可以访问此变量。//因为str属性是private的,外界是无法访问的,如果不设置此属性运行时会报错。field.setAccessible(true);field.set(test, "world");System.out.println(test.getStr());//激动人心的时刻到了。把str的值改了。}}

读书人网 >编程

热点推荐