修改对象私有属性

来源:互联网 发布:内部沟通软件 编辑:程序博客网 时间:2024/06/05 20:24

如果类没有定义修改私有属性的方法;那么借助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;

}

}
更多详情

0 0