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

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

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

    看了下java核心技術中的代理,還是很暈

    需要記住的東東:
       1.代理類是在程序運行過程中創建的,一旦創建就變成了常規類,與虛擬機種的任何其他類沒有什么區別.
      2.所有的代理類都擴展于Proxy類,一個代理類只有一個實例變量--調用處理器,它定義在Proxy的超類中,為了履行代理對象的職責,所需要的任何附加數據都必須存儲在調用處理器中.
       3.所有的代理類都覆蓋了Object中的toString,equals和hashCode,如何所有的代理方法一樣,這些方法僅僅調用了調用處理器的invoke.Object中的其他方法clone,getClass沒有被重新定義.

    感覺就是把原來的方法,拿到代理類里面執行,在執行前后可以加入自己的代碼而已,spring的IOC就是這樣的.
    例子:

    import java.lang.reflect.*;
    import java.util.*;

    public class PorxyTest {

     /**
      * @param args
      */
     public static void main(String[] args) {
      // TODO Auto-generated method stub
      Object[] elements = new Object[1000];
      
      for (int i = 0; i < elements.length; i ++) {
       Integer value = i + 1;
       Class[] interfaces = value.getClass().getInterfaces();
       InvocationHandler handler = new TraceHandler(value);
       Object proxy = Proxy.newProxyInstance(null, interfaces, handler);
       elements[i] = proxy;
      }
      Integer key = new Random().nextInt(elements.length) + 1;
      int result = Arrays.binarySearch(elements, key);
      
      if (result >= 0)
       System.out.println(elements[result]);
     }

    }

    class TraceHandler implements InvocationHandler {
     private Object target;
     public TraceHandler(Object t) {
      target = t;
     }
     
     public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {
      System.out.print(target);
      System.out.print("." + m.getName() + "(");
      if (args != null) {
       for (int i = 0; i < args.length; i ++) {
        System.out.print(args[i]);
        if (i < args.length - 1) {
         System.out.print(",");
        }
       }
      }
      System.out.println(")");
      return m.invoke(target, args);
     }
    }

    posted on 2007-05-24 14:57 liujg 閱讀(396) 評論(0)  編輯  收藏


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


    網站導航:
     
    <2007年5月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    boddiy

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 精品免费国产一区二区三区| 皇色在线视频免费网站| 免费一级黄色毛片| 婷婷国产偷v国产偷v亚洲| 午夜成人免费视频| 亚洲依依成人亚洲社区| 大学生美女毛片免费视频| 亚洲av永久中文无码精品综合| 精品国产免费观看| 免费无码国产V片在线观看| 亚洲午夜爱爱香蕉片| 国产精品免费在线播放| 亚洲国产精品无码久久SM| 无码av免费一区二区三区试看| 亚洲高清在线mv| 福利免费观看午夜体检区| 亚洲变态另类一区二区三区| 免费在线观看毛片| 99久久婷婷免费国产综合精品| 亚洲天堂男人天堂| 免费无码又黄又爽又刺激| 亚洲AV成人无码网天堂| 国产亚洲色视频在线| 免费人成视频在线观看网站| 456亚洲人成影院在线观| 亚洲?V乱码久久精品蜜桃| 成人免费区一区二区三区| 亚洲成人黄色在线| 日本免费一二区在线电影| yy一级毛片免费视频| 亚洲第一永久在线观看| 噜噜嘿在线视频免费观看| 一区二区三区免费精品视频 | a毛片免费全部在线播放**| 亚洲精品国产成人99久久| 成人毛片18岁女人毛片免费看| 免费无码国产V片在线观看| 97久久精品亚洲中文字幕无码 | 国产精品久免费的黄网站| 水蜜桃视频在线观看免费播放高清| 亚洲AV无码专区亚洲AV伊甸园|