飛翔的起點

          從這里出發

          導航

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

          統計

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          java運行時類型RTTI

          運行時類型識別(run-time type identification ,RTTI)的概念上看非常簡單:當只有一個指向對象基類的引用時RTTI機制可以讓你找到這個對象的確切概念

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

          2。Class.forName("classname"),如果對象沒有加載就加載對象(這將會觸發類的靜態初始化)
                Class.newInstance()用來產生一個對象。如
                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 關鍵字用于檢查對象是不是某個特定類型的實例。這用于類型轉換前做檢測。如:
                if  ( x   instanceof Dog )
                        ((Dog)x).bark();
               
          除了 instanceof 關鍵字以外,還可以使用 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類(每個類都實現了Memeber接口)。這些類型的對象是有JVM在運行時創建的,用以表示未知類里對象的成員,然后用Constructor創建新的對象,用get ()和set()方法讀取和修改Field對象關聯的字段,用invoke()方法調用于Method對象關聯的方   法,還可以用getFields(),getMethods(),getConstructors()等等方法。

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


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


          網站導航:
           
          主站蜘蛛池模板: 无棣县| 肇州县| 玉林市| 顺昌县| 婺源县| 五河县| 越西县| 呼玛县| 平远县| 海晏县| 汝阳县| 肃南| 佛教| 司法| 东光县| 富阳市| 招远市| 隆回县| 威海市| 宜宾市| 铜梁县| 永安市| 依安县| 日土县| 古蔺县| 林西县| 峨边| 旬邑县| 新昌县| 喀什市| 获嘉县| 霍林郭勒市| 唐山市| 枣庄市| 拉萨市| 济南市| 巴中市| 乌拉特中旗| 柘荣县| 巴东县| 广州市|