導航:首頁 > 編程語言 > java反射設置屬性

java反射設置屬性

發布時間:2024-03-02 04:05:19

A. java反射 在只知道類名的情況下,怎樣給其中的私有屬性賦值

利用反射能

//假設類名為A
//實例化類
Ap=newA();
//獲取class
Classc=p.getClass();
//獲取該類所有的欄位
Field[]fields=c.getDeclaredFields();
//遍歷賦值
for(inti=0;i<fields.length;i++){
StringfiledName=fields[i].getName();
//AccessibleTest類中的成員變數為private,故必須進行此操作
fields[i].setAccessible(true);
//判斷類型
Class<?>type=fields[i].getType();
//獲取欄位類型
StringtypeName=type.getName();
System.out.println(type.getName());

//對欄位進行賦值第一個參數為對象引用第二個參數為要附的值

//如果為字元串類型
if("java.lang.String".equals(typeName)){
fields[i].set(p,"1");
}
//如果為日期類型
elseif("java.util.Date".equals(typeName)){
fields[i].set(p,newDate());
}
else{
fields[i].set(p,1);
}

}

//樓主我只是簡單的寫了下。可能還需要判斷欄位名稱以及其他類型什麼的。



最後希望樓主多看看java 文檔。

B. 如何通過java的反射 修改對象的屬性的值

Fieldfield=classType.getDeclaredField("username");
//設置壓制訪問類型檢查,只有這樣,才能獲取和設置某個具體類的Field對應的值。
field.setAccessible(true);
System.out.println(field.get(privateField));
//設置私有域的值
field.set(privateField,"arthinking");
System.out.println(field.get(privateField));

C. java 反射 能直接對私有屬性賦值么不通過set方法

設置
A a = new A();
Field field = a.getClass().getDeclaredField("x");
field.setAccessible(true);
field.set(a, 1);
讀取
Field f = a.getClass().getDeclaredField("x");
f.setAccessible(true);
System.out.println(f.get(a));

D. 如何利用java反射機制往.java文件中添加屬性

class
c
=
class.forname("student");
//通過字元串裝載類,
必須是絕對路徑,
即包括包名
object
o
=
c.newinstance();
//獲取裝載類的實例,
如果找不到就會拋出異常
class[]
cs=
{sting.class,int.class};
//定義一個類的數組,
一般這種都是用在method的參數列表
//string.class說明傳的是類型
method
m
=
c.getmethod("study",cs);
//獲取裝載類的實例的study方法,
注意後面的參數,
class[]
ca
=
{"tom",18}
//和上面有點不同,
這里傳的是值
object
result
=
m.invoke(o,ca);
//執行method方法,並獲取結果
反射一般都用在類名,欄位,方法可以隨便變化的時候,
還可以進行統一的處理,提高擴展性
比如說hibernate框架的實體類,
預先你不可能知道實體類會有什麼欄位,
包括欄位的類型都是有可能隨意變化的,
這時候要獲取指定類的欄位信息就必須得使用反射了.
還有struts的actionform等都一樣
以上純屬個人意見,
學得不是很深,希望能給你帶來幫助

閱讀全文

與java反射設置屬性相關的資料

熱點內容
網站怎麼用本地伺服器 瀏覽:120
javadoc導入android 瀏覽:517
文件掃描成pdf 瀏覽:696
涼山火災救援命令 瀏覽:52
壓縮機三相檢測 瀏覽:861
linux怎麼安裝光碟 瀏覽:799
寬頻伺服器無響應是為什麼 瀏覽:226
壓縮包內看圖 瀏覽:912
安卓手機如何發現app後台調用情況 瀏覽:561
程序員簡歷工作描述 瀏覽:159
伺服器中強制疾跑的指令是什麼 瀏覽:54
日語命令性 瀏覽:261
免費的程序編譯游戲 瀏覽:892
如何安裝屏蔽的APP 瀏覽:198
豬臉識別app如何下載 瀏覽:156
卓嵐串口伺服器如何使用 瀏覽:440
pdf周振甫 瀏覽:759
程序員35歲生日圖片 瀏覽:628
矩形密封圈的壓縮量 瀏覽:455
信息安全中圖像加密技術畢業論文 瀏覽:538