<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
    寫的不錯  回復  更多評論
      
    主站蜘蛛池模板: 91亚洲国产成人久久精品网站| 国产福利免费视频| 亚洲AV成人精品网站在线播放| 国产福利免费观看| 一二三四在线播放免费观看中文版视频| 中文字幕成人免费高清在线视频| 亚洲gay片在线gv网站| 亚洲日本国产精华液| 久久精品国产亚洲AV麻豆~ | 亚洲精品无码不卡| 亚洲色欲久久久久综合网| 手机在线免费视频| 在线观看成人免费视频不卡| 中国国产高清免费av片| 成年免费a级毛片| 久久无码av亚洲精品色午夜| 亚洲欧洲日本精品| 亚洲综合日韩中文字幕v在线| 久久精品国产亚洲综合色| 亚洲午夜av影院| 亚洲人成影院在线无码观看| 国产真实伦在线视频免费观看| 一二三四免费观看在线视频中文版 | 亚洲综合无码无在线观看| 99久久精品国产亚洲| 亚洲丁香色婷婷综合欲色啪| 国产亚洲精品无码成人| 国产成人综合亚洲亚洲国产第一页| www亚洲精品少妇裸乳一区二区| 无码国模国产在线观看免费 | 亚洲av无码专区国产不乱码| 亚洲第一区二区快射影院| 亚洲一区二区三区久久| 精品亚洲AV无码一区二区| 亚洲一区二区三区免费视频| 亚洲人成毛片线播放| 中文字幕亚洲综合小综合在线| 亚洲综合色7777情网站777| 香蕉大伊亚洲人在线观看| 亚洲女子高潮不断爆白浆| 国产天堂亚洲国产碰碰|