如果类没有定义修改私有属性的方法;那么借助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;
}
}
更多详情
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29212814/viewspace-1107299/ ,如需转载,请注明出处,否则将追究法律责任。