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

java反射設置值

發布時間:2023-03-28 10:36:00

Ⅰ 如何通過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));

Ⅱ Java通過反射可以設置私有變數的好處有哪

Java通過反射可以設置私有變數的好處有
public class PrivateTest { private String name = "hello"; public String getName() { return name; } } 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"); field.setAccessible(false); System.out.println(pt.getName()); } } 這樣通過反射可以設置私有變數,Java當時設計的時候是出於什麼考慮的呢?
但是也有應用的場景,可以想到的是: hibernate中你定義實體類及相應的欄位(和資料庫表對應),你可以在映射文件中配置: 當你從資料庫中獲取到數據後,是調用類的setxxx()方法,還是直接給欄位賦值,這里欄位是可以設置成private的,用的就是反射。那java反射可以設置私有變數的值,是好處多還是壞處多呢? 問題補充:robertliudeqiang 寫道提供了一種介面吧,一般情況下不會用的。
但是也有應用的場景,可以想到的是: hibernate中你定義實體類及相應的欄位(和資料庫表對應),你可以在映射文件中配置: 當你從資料庫中獲取到數據後,是調用類的setxxx()方法,還是直接給欄位賦值,這里欄位是可以設置成private的,用的就是反射。目前反射設置private變數的值,還未看出是有好處 的。
那應該是java的一個問題遺留,為了兼容沒法解決的。

Ⅲ JAVA中反射是什麼

JAVA中反射是動態獲取信息以及動態調用對象方法的一種反射機制。

Java反射就是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意方法和屬性;並且能改變它的屬性。而這也是Java被視為動態語言的一個關鍵性質。

Java反射的功能是在運行時判斷任意一個對象所屬的類,在運行時構造任意一個類的對象,在運行時判斷任意一個類所具有的成員變數和方法,在運行時調用任意一個對象的方法,生成動態代理。

(3)java反射設置值擴展閱讀:

JAVA中反射實例:

1、Class superClass=clazz.getSuperclass();//獲取父類。

System.out.println("getSuperclass:"+superClass)。

2、Class[] interfaces=clazz.getInterfaces();//獲取實現介面。

System.out.println("getInterfaces:"+interfaces.length)。

3、Constructor[] cons=clazz.getConstructors();//構造方法。

System.out.println("getConstructors:"+cons.length)。

參考資料來源:網路: JAVA反射機制

Ⅳ 關於java反射給屬性進行賦值的問題!

Field[] fields = per1.getClass().getFields();
這句只能取到聲明為public的屬性,而你的name,age都是使用默認的private屬性。
所以取出來的fields為空。
String newvalue = oldvalue.replaceAll("小紅", "小白");
這句代碼不知是不是你手誤了,不存在小紅,就不可能轉變為小白。

閱讀全文

與java反射設置值相關的資料

熱點內容
程序員放棄後會怎樣 瀏覽:182
河北模具編程 瀏覽:187
adb查找命令 瀏覽:321
安卓手機視頻文件夾怎麼打開 瀏覽:309
平板加密手機後怎麼關閉 瀏覽:566
流媒體伺服器應該注意什麼 瀏覽:536
d8命令編譯 瀏覽:964
壓縮包解壓需要多少空間 瀏覽:145
如何查找app屬性 瀏覽:388
android人臉識別技術 瀏覽:320
pc104編程 瀏覽:335
二維碼反編譯破解推廣 瀏覽:682
修改伺服器的mac地址 瀏覽:528
好玩的編程軟體 瀏覽:899
編程語言創始人有錢嗎 瀏覽:804
短視頻app怎麼獲客 瀏覽:15
查看雲伺服器的應用 瀏覽:435
javadump工具 瀏覽:564
程序員16g 瀏覽:444
程序員沒有辦法成為top怎麼辦 瀏覽:218