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

Java Reflect

系統 2013 0
??? 面對Java反射機制,會有種令人敬畏而又好奇的感覺,覺得非常強大,深不可測!呵,其實是懶惰的表現,總是找借口和理由不去深入學習這些東西,覺得實際開發中很少會用到,能混就混混吧。真該死。
??? 下面就來淺談下反射,也總結下這幾天學習的心得,僅供個人總結,不足之處請大家看在小弟能力有限學習未深的份上多多包涵呵。?
??? 每個class都其實都對應一個Class對象,該對象就包含在我們編寫完一個類編譯之后在相應的路徑下產生一個.class文件中,該Class對象就用于表示這個類的類型信息。在運行期間,如果我們要產生某個類的對象,Java虛擬機(JVM)會檢查該類型的Class對象是否已被加載。如果沒有被加載,JVM會根據類的名稱找到.class文件并加載它。一旦某個類型的Class對象已被加載到內存,就可以用它來產生該類型的所有對象。
??? OK,初步了解了以上類的被加載機制后,我們就開談Java Reflect的樂趣吧。
??? Java不是動態語言,但是通過java reflect我們可以實現類似動態語言的特性,靠的是什么?就是java reflect API,而java reflect 靠的是什么?其根本就是從每個類所對應的Class對象中所定義的各種方法。也就是說,要想對某個類使用反射機制動態對其進行某些特殊操作,我們必須先獲取該類所對象的Class對象,它就是反射的一個入口,怎么樣來獲取Class對象呢?有以下幾種常用的方法:
??? 1、利用對象調用getClass()方法獲取該對象的Class實例。打開JDK文檔,該方法定義在Object類中,也就是說,java中所有的類都擁有該方法,因為java中任何對象都是延伸自Object父類的。該方法返回Class對象,如果類型不確定,可以使用泛型Class<?>
???? 2、使用Class類的靜態方法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中的核心機制,十分重要。小弟不才,說了半天沒表達清楚什么,繼續努力!
????

Java Reflect


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 婷婷综合激情网 | 一级女性全黄生活片免费看 | 日本aaaa特级毛片 | 国产伦精品一区二区三区免费观看 | 中文字幕 亚洲一区 | 天天操天天插天天射 | 亚洲成a| 国产一国产一级毛片视频 | 一级毛片免费播放视频 | 欧美亚洲在线 | 亚州毛色毛片免费观看 | 福利视频精品 | 在线a毛片免费视频观看 | 欧美日韩国产另类一区二区三区 | 久久精品在现线观看免费15 | 久久久久久穴 | 亚洲精品一区最新 | 日本亚洲精品成人 | 欧美成人一级视频 | 欧美最猛性xxxxx短视频 | 四虎影视精品 | 色97色| 成人国产午夜在线视频 | 久久精品国产福利国产秒 | 欧美一级www片免费观看 | 欧美高清国产 | 日本不卡三区 | 四虎影院在线播放视频 | 免费观看日本污污ww网站一区 | 97人人在线视频 | 韩国爱情片免费大全 | 四虎www成人影院免费观看 | 九九精品久久久久久噜噜 | 国产精品午夜波多野结衣性色 | 久久精品国产一区二区三区 | 91精品国产色综合久久不 | 国产高清成人mv在线观看 | 免费看一级欧美毛片视频 | 亚洲精品国产专区一区 | 色色色资源站 | 中文国产欧美在线观看 |