溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java反射技術(shù)

發(fā)布時間:2020-07-29 20:50:11 來源:網(wǎng)絡(luò) 閱讀:318 作者:奔跑吧爽爽 欄目:開發(fā)技術(shù)

1.什么是反射
JAVA反射機制是在運行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法;
對于任意一個對象,都能夠調(diào)用它的任意一個方法和屬性;
這種動態(tài)獲取的信息以及動態(tài)調(diào)用對象的方法的功能稱為java語言的反射機制

  1. 獲取Class對象的三種方式
    類名.class
    實例對象.getClass()
    Class.forName("類的全路徑");
  1. 通過Class對象獲取構(gòu)造器對象
    Constructor [] cs = clazz.getConstructors(); -- 獲取構(gòu)造器的數(shù)組
    Stu stu = (Stu) clazz.newInstance(); -- 調(diào)用空的構(gòu)造方法,獲取實例對象
    Constructor c = clazz.getConstructor(類型.class); -- 通過指定的參數(shù)來獲取構(gòu)造器對象

  2. 通過Class對象獲取屬性對象
    Field f = clazz.getField("num"); -- 獲取公有的屬性對象
    Field f = clazz.getDeclaredField("屬性"); -- 獲取公有或者私有的屬性對象

  3. 通過Class對象獲取方法的對象
    Method m = clazz.getMethod("方法名稱",參數(shù)類型.class); -- 獲取共有的方法對象
    Method m = clazz.getDeclaredMethod("方法名稱",參數(shù)類型.class); -- 獲取公有或者私有的方法的對象
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI