夏天到了

雨季过后,是蘑菇生长的季节

 

如何更改私有成员?

如何更改私有成员?
假设类Summer定义如下:
public class Summer{
   private int number = 0;
}

测试如下:
Summer example = new Summer.newInstance();
Field f = example .getClass().getDeclaredField("number");
f.setAccessible(true);
f.set(example, 2);
f.setAccessible(false);

结果:私有成员的值变为2

posted on 2005-09-26 12:19 蘑菇 阅读(701) 评论(3)  编辑  收藏 所属分类: 已解决之问题代码实现--JAVA

评论

# re: 如何更改私有成员? 2005-09-27 16:27 小义

Class ... can not access a member of class Summer with modifiers "private"

这篇文章不对,看来作者没有做实验吧  回复  更多评论   

# re: 如何更改私有成员? 2005-09-27 16:32 小义

哦,你是对的,是可以更改的,刚才我的程序没敲好。嘿嘿
谢谢作者。
不过这样一来,那Java的数据隐藏不就失效了,private的也可以操作,太危险了吧  回复  更多评论   

# re: 如何更改私有成员? 2005-09-27 16:45 蘑菇

没有什么会是绝对安全的。
访问私有成员用的并不多,我这次也是做测试才涉及到的。真正用处是程序的动态设计。具体内容可以参见:
http://www.blogjava.net/oceanqtt/articles/14070.html  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

公告

其实生活很简单

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

相册

搜索

最新评论

阅读排行榜

评论排行榜