飛翔的起點

          從這里出發

          導航

          <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 閱讀(372) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 阿克陶县| 涿鹿县| 凤台县| 黄梅县| 延寿县| 桂阳县| 安康市| 荣昌县| 宾阳县| 南丰县| 乌拉特中旗| 大新县| 苍溪县| 开阳县| 文登市| 柳林县| 汶川县| 林口县| 永平县| 南城县| 琼海市| 那曲县| 阿克| 林口县| 东源县| 德格县| 达尔| 黑龙江省| 宜宾市| 政和县| 湘乡市| 涪陵区| 南江县| 冀州市| 林西县| 马边| 东方市| 湖南省| 巴林左旗| 南开区| 陕西省|