更新時間:2020-05-11 16:04:32 來源:動力節點 瀏覽3121次
一,什么是java反射機制?
JAVA反射機制是在運行狀態中,對于任意一個實體類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意方法和屬性;這種動態獲取信息以及動態調用對象方法的功能稱為java語言的反射機制。
1.意義
首先,反射機制極大的提高了程序的靈活性和擴展性,降低模塊的耦合性,提高自身的適應能力。
其次,通過反射機制可以讓程序創建和控制任何類的對象,無需提前硬編碼目標類。
再次,使用反射機制能夠在運行時構造一個類的對象、判斷一個類所具有的成員變量和方法、調用一個對象的方法。
最后,反射機制是構建框架技術的基礎所在,使用反射可以避免將代碼寫死在框架中。
正是反射有以上的特征,所以它能動態編譯和創建對象,極大的激發了編程語言的靈活性,強化了多態的特性,進一步提升了面向對象編程的抽象能力.
2.原理
反射機制(Reflection)是Java提供的一項較為高級的功能,它提供了一種動態功能,而此功能的體現在于通過反射機制相關的API就可以獲取任何Java類的包括屬性、方法、構造器、修飾符等信息。元素不必在JVM運行時進行確定,反射可以使得它們在運行時動態地進行創建或調用。反射技術在中間件領域應用得較多。
二.實踐說明
通過反射Student類的屬性和方法
Student類的代碼:
通過反射獲取類的對象
主方法的運行
拋出異常:ClassNotFoundException意思是沒有找到類的異常
運行結果:
解釋一下,在一個JVM中,一種類,只會有一個類對象存在。所以以上三種方式取出來的類對象,都是一樣的。
通過反射獲取Student屬性
運行結果
通過反射獲取類的方法
反射方法運行結果:
使用到的異常:
與Java反射相關的類如下:
Class類代表類的實體,在運行的Java應用程序中表示類和接口
Field類代表類的成員變量(成員變量也稱為類的屬性)
Method類代表類的方法
Constructor類代表類的構造方法
動態代理的時候也可以用到反射等。比如aop。
以上就是動力節點java培訓機構的小編針對“Java反射機制視頻,反射機制的講解”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
Java反射機制相關視頻教程
反射具體屬性Field:http://www.dabaquan.cn/xiazai/788.html
反編譯類的方法Method:http://www.dabaquan.cn/xiazai/480.html
反射具體的方法Method:http://www.dabaquan.cn/xiazai/477.html
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習