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

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

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

    隨筆 - 3, 文章 - 152, 評論 - 17, 引用 - 0
    數據加載中……

    Java反射簡述

    Java中反射Reflection就是對類信息的元數據的描述與操作,首先是對加載的類的信息的獲得,其次是實例化和操作對象。

    類信息有java.lang.Class提供描述。Class對象由三種方法獲得,第一是調用對象的getClass()方法;第二是直接使用類的.class形式;第三是直接使用Class.forName(String)的形式;

    和反射打交道使用較多的類是java.lang.reflect.MethodFieldConstructor分別對應方法調用、屬性與屬性修改、構造函數使用三個方面,具體api查看文檔;數組類型比較特殊具體參考java.lang.reflect.Array

    關于反射的兩個誤解:反射代碼速度很慢;反射代碼都是復雜的;

    ――――如果使用得當,反射不會降低性能,正確的使用反射實際上應該改進代碼的可維護性。反射的直接使用應該僅局限于基礎機構類,不應該被分散到應用對象中。Rod Johnson

    反射的api學習不是關鍵,關鍵是掌握其本質,并能夠在實際中合適的使用它。掌握反射是一個認真的java程序員該做到的。實際中已用到的反射的例子:strutsformbean從請求中自動填充、apacheBeanUtil包;strutsDispatchAction根據參數傳遞的方法名字動態調用本實例的具體方法;工廠模式中根據參數傳遞的類名來動態加載并實例化一個產品。

     

           動態代理

    jdk1.3提供的一種在運行時實現特定接口并生成相應代理實現,從而可以截取對該接口實現的調用。截取對每個實現方法的調用對處理提供了很大的空間,你可以在方法調用前后進行相關的處理,同時還可以隨意調用非實現對象的方法。這種截取適用于資源的獲得和釋放、記錄日志、獲取性能信息等情況。動態代理是一種Aspect Oriented Programming (AOP)的實現,同時經常在容器和服務器級別使用。

    實際使用動態代理的例子:代理Connection來自動關閉該連接打開的Statement;在業務方法前后添加日志記錄。

    posted on 2005-07-19 09:18 閱讀(254) 評論(0)  編輯  收藏 所屬分類: Reflection


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


    網站導航:
     
    主站蜘蛛池模板: 国产91色综合久久免费| 久久精品免费观看| 成人免费看吃奶视频网站| 亚洲婷婷在线视频| 成人免费福利视频| 亚洲午夜国产精品无卡| 亚洲啪啪免费视频| 亚洲人成在久久综合网站| 美女视频黄是免费的网址| 亚洲精品国产国语| 免费看香港一级毛片| 国产精品无码亚洲精品2021| 四虎影院永久免费观看| 看一级毛片免费观看视频| 亚洲免费在线观看| 国产免费AV片在线观看| 亚洲一区二区三区高清| 国产成人精品免费视| 自拍偷自拍亚洲精品播放| 亚洲?V无码成人精品区日韩| 在线观看免费视频网站色| 麻豆亚洲av熟女国产一区二| 无码中文在线二区免费| 免费看一级一级人妻片| 久久精品7亚洲午夜a| 99精品国产免费久久久久久下载| 亚洲另类自拍丝袜第五页| 亚洲精品久久久www| 99在线热视频只有精品免费| 中文字幕在线观看亚洲视频| 免费成人在线观看| 久久大香香蕉国产免费网站| 亚洲AV日韩综合一区尤物| 免费乱码中文字幕网站| 无码人妻精品中文字幕免费 | 亚洲人成7777| 国产精品无码免费视频二三区| 中文字幕免费在线看电影大全| 亚洲国产成人久久精品app| 亚洲Av无码乱码在线znlu| 久久综合国产乱子伦精品免费|