反射機(jī)制

以下內(nèi)容整理自互聯(lián)網(wǎng),僅用于個(gè)人學(xué)習(xí)


什么是反射機(jī)制

JAVA反射機(jī)制是在運(yùn)行狀態(tài)中, 對(duì)于任意一個(gè)類, 都能夠知道這個(gè)類的所有屬性和方法; 對(duì)于任意一個(gè)對(duì)象, 都能夠調(diào)用它的任意一個(gè)方法和屬性; 這種動(dòng)態(tài)獲取的信息以及動(dòng)態(tài)調(diào)用對(duì)象的方法的功能稱為java語言的反射機(jī)制。

反射機(jī)制所操作的對(duì)象

  • Class:類對(duì)象
  • Constructor:類的構(gòu)造器對(duì)象
  • Field:類的屬性對(duì)象
  • Method:類的方法對(duì)象

反射機(jī)制的作用

  • 在運(yùn)行時(shí)判斷任意一個(gè)對(duì)象所屬的類
  • 在運(yùn)行時(shí)構(gòu)造任意一個(gè)類的新對(duì)象實(shí)例(.newInstance())
  • 在運(yùn)行時(shí)獲取任意一個(gè)類所具有的成員變量和方法
  • 在運(yùn)行時(shí)調(diào)用任意一個(gè)對(duì)象的方法

開發(fā)中的用處:

  • 觀察或操作應(yīng)用程序的運(yùn)行時(shí)行為。
  • 調(diào)試或測(cè)試程序,因?yàn)榭梢灾苯釉L問方法、構(gòu)造函數(shù)和成員字段。
  • 通過名字調(diào)用不知道的方法并使用該信息來創(chuàng)建對(duì)象和調(diào)用方法。

反射機(jī)制的優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):就是可以實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建對(duì)象和編譯,體現(xiàn)出很大的靈活性,特別是在J2EE的開發(fā)中它的靈活性就表現(xiàn)的十分明顯。
  • 缺點(diǎn):對(duì)性能有影響。使用反射基本上是一種解釋操作,我們可以告訴JVM,我們希望做什么并且它滿足我們的要求。這類操作總是慢于只直接執(zhí)行相同的操作。并且它饒過了源碼,會(huì)干擾原來的內(nèi)部邏輯。

反射機(jī)制獲取class的方法

  • class.forName(類的路徑)
  • 類名.class
  • 實(shí)例.getClass()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容