A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张绍成 黑马帝   /  2011-12-28 20:26  /  1685 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张绍成 于 2011-12-29 19:26 编辑

我想知道:
  1. field.setAccessible(true);
复制代码
有什么作用?
  1. Class clazz2 = Class.forName("cn.itcast.interview.test2.Person");
  2.                 Object p = clazz.newInstance();
  3.                 Field field = clazz2.getDeclaredField("age");
  4.                 field.setAccessible(true);
  5.                 field.set(p, 18);
  6.                 System.out.println(field.getInt(p));
复制代码

3 个回复

倒序浏览
age要是私有的话,用一般反射方式拿不到,必须这样field.setAccessible(true)设置才能拿到私有的age属性,暴力反射,呵呵。
回复 使用道具 举报
field.setAccessible(true);  //我的理解是 允许访问获取到的变量
回复 使用道具 举报
Person中age是私有反射方式拿不到该成员变量,必须这样field.setAccessible(true)设置后就可以访问私有的age属性,也叫暴力反射,老师有讲到的 ,呵呵。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马