修改物件私有屬性

beifengwang發表於2014-03-11

如果類沒有定義修改私有屬性的方法;那麼藉助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部落格 ” ,連結:http://blog.itpub.net/29212814/viewspace-1107299/,如需轉載,請註明出處,否則將追究法律責任。

相關文章