修改对象私有属性
如果类没有定义修改私有属性的方法;那么借助java反射机制,通过Class,取得Field,通过设置Field.setAccessible(true) ,就可以调用set方法为私有属性设值;
import java.lang.reflect.Field;
public class ReflectionTest{
public static void main(String[] args) throws Exception{
PrivateTest pt = new PrivateTest();
Class<?> clazz = PrivateTest.class;
Field field = clazz.getDeclaredField(”name”);
field.setAccessible(true);
field.set(pt,”world”);
System.out.println(pt.getName());
}
}
class PrivateTest{
private String name=”hello”;
public String getName(){
return name;
}
}
作者:ikon999
来源:北风技术专栏
原文链接:http://column.ibeifeng.com/51564/20081013112.shtml
( 内容完 )
添加收藏到:
您可能还对这些文章感兴趣:



没有评论, 我来评论
小贴士:评论需要管理员审核后才会显示。请不要发布与国家法律相抵触的言论,北风网将保留追究责任的权利。
类似“顶”、“沙发”、“支持”之类没有营养的文字,对勤劳贡献的作者来说是令人沮丧的反馈信息。
请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
如果您发现自己的评论没有被审核或者不见了,请参考以上三条。