亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Java Reflect

系統 1743 0
??? 面對Java反射機制,會有種令人敬畏而又好奇的感覺,覺得非常強大,深不可測!呵,其實是懶惰的表現,總是找借口和理由不去深入學習這些東西,覺得實際開發(fā)中很少會用到,能混就混混吧。真該死。
??? 下面就來淺談下反射,也總結下這幾天學習的心得,僅供個人總結,不足之處請大家看在小弟能力有限學習未深的份上多多包涵呵。?
??? 每個class都其實都對應一個Class對象,該對象就包含在我們編寫完一個類編譯之后在相應的路徑下產生一個.class文件中,該Class對象就用于表示這個類的類型信息。在運行期間,如果我們要產生某個類的對象,Java虛擬機(JVM)會檢查該類型的Class對象是否已被加載。如果沒有被加載,JVM會根據類的名稱找到.class文件并加載它。一旦某個類型的Class對象已被加載到內存,就可以用它來產生該類型的所有對象。
??? OK,初步了解了以上類的被加載機制后,我們就開談Java Reflect的樂趣吧。
??? Java不是動態(tài)語言,但是通過java reflect我們可以實現類似動態(tài)語言的特性,靠的是什么?就是java reflect API,而java reflect 靠的是什么?其根本就是從每個類所對應的Class對象中所定義的各種方法。也就是說,要想對某個類使用反射機制動態(tài)對其進行某些特殊操作,我們必須先獲取該類所對象的Class對象,它就是反射的一個入口,怎么樣來獲取Class對象呢?有以下幾種常用的方法:
??? 1、利用對象調用getClass()方法獲取該對象的Class實例。打開JDK文檔,該方法定義在Object類中,也就是說,java中所有的類都擁有該方法,因為java中任何對象都是延伸自Object父類的。該方法返回Class對象,如果類型不確定,可以使用泛型Class<?>
???? 2、使用Class類的靜態(tài)方法forName(),用類的全路徑名字獲取一個Class實例。這個方法就不用多說了呵,初學Java JDBC時我們就用過,典型的反射應用。
???? 3、運用.class的方式來獲取Class實例,如(類名.class),對于基本數據類型的封裝類,還可以采用.TYPE來獲取相對應的基本數據類型的Class實例。int.class ,Integre.class ,Integer.TYPE)
??? 好了,現在我們得到了一個類的Class對象了,那么該怎么下手哩?仔細想想,我們在定義一個類的時候,無非只有四種存在,
??? 1、Field : 屬性
??? 2、Constructor : 構造子
??? 3、Method : 方法
??? 4、Array : 可能會定義的數組
??? 以上幾種就是我們在類定義的時候類中存在最基本的元素,但反射是在運行時對類對象進行操作的,所以我們也有可能需要對某個屬性或方法的訪問權限進行獲取,以對該對象更全面的了解,所以Modifier的獲取也是必然的。
??? 請打開JDK文檔的java.lang.reflect包,該包下就會找到上述幾個東東,原來在該反射包中,它們都被定義成類了,并且在每個類中都定義了對其操作的各種方法。有人可能要問了,這幾個類跟Class對象有什么關系?呵,關系大了去了,比如Constructor是構造方法類,它一般用于構造某個帶參構造器類的對象的時候使用,比如某個類只提供了一個帶參構造器,這時就需要使用該類的Class對象的getConstructor()方法返回Constructor對象,再用該對象的newInstance()方法來構造該類。也就是說,以上幾個類,都是基于Class對象來對某個類進行操作的。
??? 總之,Class代表的是類對象,上述幾個類可以看成是工具,我想怎么去對一個類對象在運行時進行操作,就是依靠該類的Class對象來告訴上述幾個類:“我想讓你(Field、Constructor、Method、Array、Modifier等)告訴我此時我代表的這個對象的某些信息,因為我要在這個運行時刻對它進行一些操作!”
??? 所以,在java反射中,只要把這幾個類的關系及其作用弄清楚之后,對java反射也就有了一個大致的了解了,對于一些架構或是開源框架的一些“智能”也就不會感到那么高深莫測了呵。其實java reflect技術是java中的核心機制,十分重要。小弟不才,說了半天沒表達清楚什么,繼續(xù)努力!
????

Java Reflect


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 天天做天天爰夜夜爽 | 我要看欧美精品一级毛片 | 奇米影音四色 | 亚洲国产精品视频在线观看 | 中文毛片 | 全部免费毛片免费播放 | 欧美日韩一卡二卡 | 亚洲欧美国产日产综合不卡 | 日韩亚洲欧美性感视频影片免费看 | 奇米影视一区 | 亚洲欧洲日产国码二区首页 | 亚洲一区二区三区网站 | 久久久久久久久久久福利观看 | 国产成人在线播放 | 欧美曰韩一区二区三区 | 妖精视频在线观看网站 | 国产成人精品男人的天堂538 | 2022国产男人亚洲欧美天堂 | 久青草免费视频手机在线观看 | 综合激情五月婷婷 | 国产精品mm| 欧美精品亚洲人成在线观看 | 2023中文字幕在线观看 | 日本一级毛片在线观看 | 久久久综合九色合综 | 久久亚洲精品中文字幕 | 日本三区视频 | 91视频香蕉视频 | 亚洲另类视频在线观看 | 福利在线视频一区热舞 | 一级特黄特黄毛片欧美的 | 四虎国产精品永久在线 | 亚洲天天网综合自拍图片专区 | 香蕉视频在线观看国产 | 伊人99在线观看 | 国产精品视频久 | 色综合久久一区二区三区 | 爱操综合网 | 七次郎在线视频精品视频 | 九九精品视频在线播放 | 99热这里只有精品9 99热这里只有精品99 |