Cyh的博客

          Email:kissyan4916@163.com
          posts - 26, comments - 19, trackbacks - 0, articles - 220

          JAVA語言的反射機制

          Posted on 2009-02-16 19:07 啥都寫點 閱讀(227) 評論(1)  編輯  收藏

          Java運行時環境中,對于任意一個類,能否知道這個類有哪些屬性和方法?對于任意一個對象,能否調用它的任意一個方法?答案是肯定的。這種動態獲取類的信息以及動態調用對象的方法的功能來自于Java語言的反射(Reflection)機制。

           

          反射機制主要提供了以下功能:

            1、在運行時判斷任意一個對象所屬的類。

            2、在運行時構造任意一個類的對象

            3、在運行時判斷任意一個類所具有的成員變量和方法。

            4、在運行時調用任意一個對象的方法。

           

          ReflectionJava被視為動態(或準動態)語言的一個關鍵性質。這個機制允許程序在運行時透過ReflectionAPIs取得任何一個已知名稱的class的內部信息,包括其modifiers(諸如public,static等等)、superclass(例如Object)、實現之interfaces(例如 Serializable),也包括fieldsmethods的所有信息,并可于運行時改變fields內容或調用methods

          一般而言,開發者社群說道動態語言,大致認同的一個定義是:“程序運行時,允許改變程序結構或變量類型,這種語言稱為動態語言”。從這個觀點看,Perl,Python,Ruby是動態語言,C++Java, C#不是動態語言。盡管在這樣的定義與分類下Java不是動態語言,它卻有著一個非常突出的動態相關機制:Reflection。這個字的意思是“反射、印象、倒影”,用在Java身上指的是我們可以于運行時加載、探知、使用編譯期間完全未知的classes。換句話說,Java程序可以加載一個運行時才得知名稱的class,獲悉其完整構造(但不包括methods定義),并聲成其對象實體、或對其fields設置、或喚起其methods。這種“看透class”的能力(the ability of the program to examine itself)被稱為introspection(內省、內觀、反省)。

           

             JDK中,主要由以下類來實現Java反射機制,這些類都位于java.lang.reflect包中。



                                                                                                                 --    學海無涯
                  

          Feedback

          # re: JAVA語言的反射機制  回復  更多評論   

          2010-12-21 10:49 by 橋總
          寫的么比東西。 還拿出來走場

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 瑞安市| 襄汾县| 太白县| 通山县| 荔波县| 琼中| 大兴区| 渭南市| 长兴县| 新营市| 江永县| 呼和浩特市| 台东县| 浮山县| 龙江县| 靖安县| 十堰市| 鹤庆县| 乌拉特前旗| 阿克陶县| 元江| 安新县| 称多县| 万安县| 顺义区| 嘉义市| 顺平县| 图木舒克市| 廊坊市| 平武县| 阆中市| 佛山市| 广宗县| 大埔区| 体育| 民县| 板桥市| 孟州市| 祁连县| 乌审旗| 麻栗坡县|