java使用反射機制設置私有成員變量的值

寫一個方法:public void setProperty(Objectobj, String propertyName, Object value){},java

此方法可將obj對象中名爲propertyName的屬性的值設置爲value。(這裏不知道obj對象的propertyName屬性的權限,若是爲private,則必須使用反射才能設置,全部纔有瞭如下代碼)code

public void setProperty(Object  obj, String propertyName, Object value) throws Exception {

       // 根據對象獲取字節碼文件對象

       Class c = obj.getClass();

       // 獲取該對象的propertyName成員變量

       Field field = c.getDeclaredField(propertyName);

       // 取消訪問檢查

       field.setAccessible(true);

       // 給對象的成員變量賦值爲指定的值

       field.set(obj, value);

    }
相關文章
相關標籤/搜索