91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

java反射機制Reflection詳解

發布時間:2020-09-14 21:55:19 來源:腳本之家 閱讀:164 作者:laozhang 欄目:編程語言

Java語言有好些個名詞,讓人望而生畏。

上智不教即知,下愚雖教無益,中庸之人,不教不知。

人的天性中就有一點對未知的恐懼。

剛開始不了解,也沒認真看,發現好難呀;等,靜下心來自己研究,再看其實不難,發現都是紙老虎,不堪一擊。

今天就來分析一下反射:Reflection 

看一下維基百科的解釋:

在諸如Java之類的面向對象的程序設計語言中,反射允許在程序運行期間訪問 類、接口、字段和方法,而不必在編譯期間知道接口、字段或者方法的名稱。

反射也允許實例化對象和調用方法。

總結三點:

第一:反射可以獲取類、接口、字段和方法的信息。

第二:不止new可以創建對象,反射也可以實例化對象。

第三:通過反射實現對方法的調用。

對于創建對象或者調用方法:正常的步驟是先用new關鍵詞,造一個對象,然后再使用此對象的引用去調用方法,這是正常的套路。

反射就是不按正常套路來,但是殊途同歸,本來可以一步到位的東西,他要分幾個詳細的步驟或者繞個彎走。而他的先獲取Class類對象,再去創建對象仿佛就是分步走。

然后通過Class類對象獲取Method,然后通過Method的invoke方法調用對象的方法就是在繞個彎。

java反射機制Reflection詳解

首先要創建一個Reflection測試類

java反射機制Reflection詳解

使用反射創建對象,用new創建對象就沒必要再說了。JavaAPI為反射機制提供了一些類包括Class和java.lang.reflect包下的類。

(1)第一種方式:使用Class類的forName靜態方法,可以獲取一個類對象,然后調用類對象的newInstance方法創建對象。

(2)第二種方式:直接使用類名.class獲取類對象,然后調用類對象的newInstance方法創建對象。

java反射機制Reflection詳解

java反射機制Reflection詳解

使用反射,獲取類的public方法,并嘗試調用類的方法。

(1)首先通過反射獲取類對象,通過類對象的getMethods方法,獲取類的所有public方法Method[]。

Method是java.lang.reflect包下的類:提供某個 類、接口 的單一方法信息,提供對方法的訪問。這個反射方法可以獲取類方法或者實例方法。

循環輸出方法名,可以看到,不止test1、3還有equals、hashCode等繼承Object的方法。

但是并沒有test2,因為他不是public類型的方法。

java反射機制Reflection詳解

java反射機制Reflection詳解

(2)使用Method的invoke調用方法test1和hashCode

java反射機制Reflection詳解

java反射機制Reflection詳解

(3)也可以使用getMethod獲取Method,不過要注意其參數

第一個參數:方法名

第二個參數:此方法參數的類型集合

java反射機制Reflection詳解

java反射機制Reflection詳解

使用反射,獲取類的public字段,和獲取方法類似,也有兩個方法,一個是獲取所有的public字段,另一個是獲取某個public字段

java反射機制Reflection詳解

java反射機制Reflection詳解

使用反射,獲取類和方法的注解。(Retention(RetentionPolicy.RUNTIME),RUNTIME類型的才能獲取到)

(1)獲取類的注解

java反射機制Reflection詳解

java反射機制Reflection詳解

(2)獲取方法的注解

java反射機制Reflection詳解

java反射機制Reflection詳解

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

连州市| 渑池县| 高清| 稷山县| 女性| 广州市| 杭锦旗| 清水河县| 刚察县| 鄂州市| 朝阳区| 沐川县| 武乡县| 濮阳市| 罗平县| 无极县| 崇义县| 扶沟县| 蒙山县| 邳州市| 鲁山县| 昌邑市| 康马县| 北碚区| 红安县| 门源| 尚义县| 廊坊市| 兴安盟| 南部县| 辽宁省| 同心县| 承德县| 邓州市| 齐齐哈尔市| 桓台县| 河北区| 绩溪县| 万山特区| 绥棱县| 古蔺县|