飛翔的起點

          從這里出發(fā)

          導航

          <2008年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          統(tǒng)計

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          java運行時類型RTTI

          運行時類型識別(run-time type identification ,RTTI)的概念上看非常簡單:當只有一個指向?qū)ο蠡惖囊脮rRTTI機制可以讓你找到這個對象的確切概念

          1。Class對象是RTTI的核心,Class的類的類,每個類都有一個class對象。每當編寫并且編譯一個新類,就會產(chǎn)生一個Class對象(被保存在同名的.class文件當中)

          2。Class.forName("classname"),如果對象沒有加載就加載對象(這將會觸發(fā)類的靜態(tài)初始化)
                Class.newInstance()用來產(chǎn)生一個對象。如
                Class m = Class.forName("classname");//1
                Object o = m.newInstance();//2
                java也提供"類字面常量"的機制生成對象的引用。像這樣:
                A.class
               對于基本類型,boolean.class === Boolean.TYPE , char.class ===Character.TYP
               void.class ===Void.TYPE,等等。。。。
               那么也可以用Class m = char.class;  //或者 Class m = <aclass>.class
                                       Object  o = m.newInstance();
                                       ((Char)o).××

          3。instanceof 關(guān)鍵字用于檢查對象是不是某個特定類型的實例。這用于類型轉(zhuǎn)換前做檢測。如:
                if  ( x   instanceof Dog )
                        ((Dog)x).bark();
               
          除了 instanceof 關(guān)鍵字以外,還可以使用 Class.isInstance() 方法,兩者功能相同。

          4。instanceof的替代方案是: x.getClass == Y.class 或者x.getClass.equals( Y.class)

          5。Class對象的getInterfaces()獲得接口,getSurperClass 或者獲得超類。

          6。反射是運行時的類信息。java附帶的庫java.lang.reflect含有Field,Method,Constructor類(每個類都實現(xiàn)了Memeber接口)。這些類型的對象是有JVM在運行時創(chuàng)建的,用以表示未知類里對象的成員,然后用Constructor創(chuàng)建新的對象,用get ()和set()方法讀取和修改Field對象關(guān)聯(lián)的字段,用invoke()方法調(diào)用于Method對象關(guān)聯(lián)的方   法,還可以用getFields(),getMethods(),getConstructors()等等方法。

          posted on 2008-04-23 11:53 forgood 閱讀(372) 評論(0)  編輯  收藏


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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 吐鲁番市| 石棉县| 封丘县| 灵台县| 万安县| 张家口市| 东山县| 南昌县| 福建省| 涡阳县| 栾城县| 固原市| 林周县| 福清市| 静宁县| 会理县| 吉水县| 平山县| 西峡县| 永平县| 无棣县| 马山县| 芮城县| 惠州市| 新竹市| 昌乐县| 高雄市| 江津市| 个旧市| 武安市| 扶余县| 珲春市| 东安县| 淮阳县| 湖北省| 滁州市| 娄烦县| 玛沁县| 阿瓦提县| 黑水县| 泸溪县|