更新時間:2020-05-11 16:04:32 來源:動力節(jié)點 瀏覽3131次
一,什么是java反射機制?
JAVA反射機制是在運行狀態(tài)中,對于任意一個實體類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調(diào)用它的任意方法和屬性;這種動態(tài)獲取信息以及動態(tài)調(diào)用對象方法的功能稱為java語言的反射機制。
1.意義
首先,反射機制極大的提高了程序的靈活性和擴展性,降低模塊的耦合性,提高自身的適應(yīng)能力。
其次,通過反射機制可以讓程序創(chuàng)建和控制任何類的對象,無需提前硬編碼目標類。
再次,使用反射機制能夠在運行時構(gòu)造一個類的對象、判斷一個類所具有的成員變量和方法、調(diào)用一個對象的方法。
最后,反射機制是構(gòu)建框架技術(shù)的基礎(chǔ)所在,使用反射可以避免將代碼寫死在框架中。
正是反射有以上的特征,所以它能動態(tài)編譯和創(chuàng)建對象,極大的激發(fā)了編程語言的靈活性,強化了多態(tài)的特性,進一步提升了面向?qū)ο缶幊痰某橄竽芰?
2.原理
反射機制(Reflection)是Java提供的一項較為高級的功能,它提供了一種動態(tài)功能,而此功能的體現(xiàn)在于通過反射機制相關(guān)的API就可以獲取任何Java類的包括屬性、方法、構(gòu)造器、修飾符等信息。元素不必在JVM運行時進行確定,反射可以使得它們在運行時動態(tài)地進行創(chuàng)建或調(diào)用。反射技術(shù)在中間件領(lǐng)域應(yīng)用得較多。
二.實踐說明
通過反射Student類的屬性和方法
Student類的代碼:
通過反射獲取類的對象
主方法的運行
拋出異常:ClassNotFoundException意思是沒有找到類的異常
運行結(jié)果:
解釋一下,在一個JVM中,一種類,只會有一個類對象存在。所以以上三種方式取出來的類對象,都是一樣的。
通過反射獲取Student屬性
運行結(jié)果
通過反射獲取類的方法
反射方法運行結(jié)果:
使用到的異常:
與Java反射相關(guān)的類如下:
Class類代表類的實體,在運行的Java應(yīng)用程序中表示類和接口
Field類代表類的成員變量(成員變量也稱為類的屬性)
Method類代表類的方法
Constructor類代表類的構(gòu)造方法
動態(tài)代理的時候也可以用到反射等。比如aop。
以上就是動力節(jié)點java培訓機構(gòu)的小編針對“Java反射機制視頻,反射機制的講解”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
Java反射機制相關(guān)視頻教程
反射具體屬性Field:http://www.ilovecolors.com.cn/xiazai/788.html
反編譯類的方法Method:http://www.ilovecolors.com.cn/xiazai/480.html
反射具體的方法Method:http://www.ilovecolors.com.cn/xiazai/477.html