導航:首頁 > 編程語言 > 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反射設置值相關的資料

熱點內容
excel表格單列數據加密 瀏覽:646
給同事的解壓話語 瀏覽:990
linux關閉網卡命令行 瀏覽:452
史上最漂亮程序員 瀏覽:768
java實現excel的導入 瀏覽:758
光遇賬號如何轉移安卓 瀏覽:266
5分之13除以26的演算法 瀏覽:342
蘭州安寧區買解壓包子 瀏覽:641
php接收圖片代碼 瀏覽:668
hci命令 瀏覽:662
福建伺服器大區雲空間 瀏覽:840
筆桿子程序員 瀏覽:745
手機軟體易驗證加密 瀏覽:589
文檔加密只讀模式也不能看到 瀏覽:431
把jpg轉換成pdf的軟體 瀏覽:874
linuxeth0mac 瀏覽:192
windows編程知乎 瀏覽:442
壓縮工期超過40 瀏覽:249
Android怎麼優化內存 瀏覽:106
linuxetcsysconfig 瀏覽:396