Field.setAccessible()方法
2024-09-16 16:04:39
http://blog.csdn.net/kjfcpua/article/details/8496911
java代码中,常常将一个类的成员变量置为private
在类的外面获取此类的私有成员变量的value时,需要注意:
测试类:
public class AccessibleTest { private int id;
private String name; public AccessibleTest() { } public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} }
Main类:
public class Main { public static void main(String[] args) throws Exception {
Class clazz = Class.forName("com.test.accessible.AccessibleTest");
AccessibleTest at = new AccessibleTest();
at.setId(1);
at.setName("AT");
for (Field f : clazz.getDeclaredFields()) {
f.setAccessible(true);//AccessibleTest类中的成员变量为private,故必须进行此操作
System.out.println(f.get(at));//获取当前对象中当前Field的value
} } }
如果没有在获取Field之前调用setAccessible(true)方法,异常:
(当然在AccessibleTest类的内部(AccessibleTest的内部类除外),进行如上操作则不需要调用setAccesible()方法)
- java.lang.IllegalAccessException:
- Class com.test.accessible.Main
- can not access
- a member of class com.test.accessible.AccessibleTest
- with modifiers "private"
最新文章
- Devexpress XtraReport 打印时弹出Margins提示解决办法
- Android学习笔记之消息机制
- Liferay 6.2 改造系列之四:重新整理Application添加页面默认提供的Portlet清单
- 【转】SpringTest框架JUnit单元测试用例获取ApplicationContext实例的方法
- Vim 常见操作
- PowerMock 简介--转载
- 「译」JavaScript 的怪癖 1:隐式类型转换
- IOS打包脚本
- rootvg 镜像
- JavaWeb图表插件的小研究
- abelkhan服务器框架
- C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework)----(一):整体介绍
- 阿里云API网关(13)请求身份识别:客户端请求签名和服务网关请求签名
- Mybatis执行CachingExecutor(六)
- Kafka权威指南 读书笔记之(五)深入Kafka
- Golang入门教程(十五)指针
- redis-缓存失效三种策略(FIFO 、LRU、LFU)
- 算法练习LeetCode初级算法之排序和搜索
- SD从零开始71 业务信息仓库(BW)
- GPIO接口解析【转】
热门文章
- rac 10g 10.2.0.1升级到10.2.0.5具体解释
- lucene.net 3.0.3、结合盘古分词进行搜索的小例子(分页功能)
- 通过扩展jQuery UI Widget Factory实现手动调整Accordion高度
- x-superobject
- 记录一次apache错误:“child pid 29023 exit signal Segmentation fault (11)”
- Extjs Gridpanel 动态加载
- 命令行编译工具NMAKE
- Nginx和Tomcat负载均衡实现session共享
- 使用 Reachability 获取网络状态
- java类与继承的执行顺序