一、定義
Java的反射(reflection)機(jī)制是在運(yùn)行狀態(tài)中,對于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法;對于任
意一個(gè)對象,都能夠調(diào)用它的任意方法和屬性,既然能拿到那么,我們就可以修改部分類型信息;這種動(dòng)態(tài)獲取信
息以及動(dòng)態(tài)調(diào)用對象方法的功能稱為java語言的反射(reflection)機(jī)制。文章來源:http://www.zghlxwxcb.cn/news/detail-839183.html
二、用途
- 在日常的第三方應(yīng)用開發(fā)過程中,經(jīng)常會(huì)遇到某個(gè)類的某個(gè)成員變量、方法或是屬性是私有的或是只對系統(tǒng)
應(yīng)用開放,這時(shí)候就可以利用Java的反射機(jī)制通過反射來獲取所需的私有成員或是方法 。 - 反射最重要的用途就是開發(fā)各種通用框架,比如在spring中,我們將所有的類Bean交給spring容器管理,無
論是XML配置Bean還是注解配置,當(dāng)我們從容器中獲取Bean來依賴注入時(shí),容器會(huì)讀取配置,而配置中給的
就是類的信息,spring根據(jù)這些信息,需要?jiǎng)?chuàng)建那些Bean,spring就動(dòng)態(tài)的創(chuàng)建這些類。
三、反射基本信息
Java程序中許多對象在運(yùn)行時(shí)會(huì)出現(xiàn)兩種類型:運(yùn)行時(shí)類型(RTTI)和編譯時(shí)類型,例如Person p = new
Student();這句代碼中p在編譯時(shí)類型為Person,運(yùn)行時(shí)類型為Student。程序需要在運(yùn)行時(shí)發(fā)現(xiàn)對象和類的真實(shí)
信心。而通過使用反射程序就能判斷出該對象和類屬于哪些類。文章來源地址http://www.zghlxwxcb.cn/news/detail-839183.html
四、反射相關(guān)的類
類名 | 用途 |
---|---|
Class類 | 代表類的實(shí)體,在運(yùn)行的Java應(yīng)用程序中表示類和接口 |
Field類 | 代表類的成員變量/類的屬性 |
Method類 | 代表類的方法 |
Constructor類 | 代表類的構(gòu)造方法 |
到了這里,關(guān)于【數(shù)據(jù)結(jié)構(gòu)】反射、枚舉以及l(fā)ambda表達(dá)式的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!