<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-31  評論-257  文章-0  trackbacks-0
          在Java運行時環境中,對于任意一個類,能否知道這個類有哪些屬性和方法?對于任意一個對象,能否調用它的任意一個方法?答案是肯定的。這種動態獲取類的信息,以及動態調用對象的方法的功能來自于Java語言的反射(Reflection)機制。Java反射機制主要提供以下功能:

    [*]在運行時判斷任意一個對象所屬的類;
    [*]在運行時構造任意一個類的對象;
    [*]在運行時判斷任意一個類所具有的成員變量和方法;
    [*]在運行時調用任意一個類的方法;
    [*]生成動態代理;


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

          [*] Class 類:代表一個類。
          [*] Field 類:代表類的成員變量
          [*] Method 類:代表類的方法
          [*] Constructor 類:代表類的構造方法
          [*] Array 類:提供了動態創建數組,以及訪問數組元素的靜態方法


    看看下面例子:它讀取命令行參數指定的類名,然后打印這個類的所具有的方法信息:
     1 import java.lang.reflect.*;
     2 public class DumpMethods{
     3     public static void main(String[] args)thorws Exception{
     4         //加載并初始化命令行參數指定的類
     5      Class classType = Class.forName(args[0]);
     6         //獲得類的所有方法
     7      Method[] methods = classType.getDeclaredMethods();
     8         for(int i=0;i<methods.length;i++){
     9             System.out.println(methods[i].toString());
    10         }
    11     }
    12 }


    運行命令 “java DumpMethods java.util.Stack”,就會顯示java.util.Stack 類所具有的方法。

    這個只是十分之基本,很簡單的示例,Java的反射還可以做很多東西,可以跟據用戶的輸入就可以得知哪些類,需要做什么操作,就是說動態跟據需要來調用相應的類與相應的方法,我之前也做過,用Struts結合Java反射來實現一些功能,有些時候,別人的接口代碼里只返回一個Object給你,而你就要用反射來得知該Object是屬于哪一個類型,之后根據設置做相應的操作,不知道大家有用過Hibernate沒有,這個框架就是大量用到了Java反射,用戶只需配置一下XML文件,Hibernate運行時,就會讀取解析XML配置文件,之后動態找相應的類,實例化相應的POJO等等,這些都是全動態化的,也就是說,我請求這個表的數據時,就自動實例化該表的POJO實例,這些都是在XML配置文件里定義好映射關系。ORM框架就如此,很多中間件也是大量使用反射,將反射靈活的運用起來,將會得到意想不到的效果,這也是Java的半動態語言吧。使編程工作變得十分靈活。
    posted on 2008-07-29 13:00 姜大叔 閱讀(292) 評論(1)  編輯  收藏 所屬分類: Java

    評論:
    # re: Java反射機制 2009-04-07 16:17 | guooo
    寫的不錯  回復  更多評論
      
    主站蜘蛛池模板: 真人无码作爱免费视频| 亚洲图片中文字幕| 亚洲精品视频免费| 亚洲精品国产V片在线观看| 在线观看亚洲专区| 哒哒哒免费视频观看在线www| 亚洲欧美国产日韩av野草社区| 成人性生交大片免费看午夜a| 一本色道久久综合亚洲精品蜜桃冫 | 久久不见久久见免费影院www日本| 免费jjzz在线播放国产| EEUSS影院WWW在线观看免费| 中文字幕亚洲乱码熟女一区二区| 两性色午夜免费视频| 久久精品国产亚洲av麻| 91精品免费久久久久久久久| 亚洲一区在线观看视频| 日韩欧毛片免费视频| 亚洲色无码国产精品网站可下载| 日本特黄特色aa大片免费| 免费一级毛片在线播放放视频| 久久久青草青青国产亚洲免观| 91视频免费网站| 亚洲视频在线观看免费视频| 久久久久国色AV免费看图片| 免费国产人做人视频在线观看| 无人视频在线观看免费播放影院| 久久久精品国产亚洲成人满18免费网站| 国产精品黄页免费高清在线观看| 亚洲成年人在线观看| 性生交片免费无码看人| 美女被暴羞羞免费视频| 久久久亚洲精品无码| 国产在线国偷精品产拍免费| 一级毛片高清免费播放| 亚洲毛片一级带毛片基地| 国产精品麻豆免费版| 亚洲午夜电影在线观看| 免费**毛片在线播放直播| 免费无遮挡无码永久视频| 亚洲成AV人片在WWW|