亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dynamicstubhandler.java

?? 最新的關(guān)于精通rmi這本書的源碼
?? JAVA
字號(hào):
/*
 * Copyright 1999 by dreamBean Software,
 * All rights reserved.
 */
package smartproxy.proxies;

import java.lang.reflect.Method;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.server.RemoteStub;
import java.security.*;
import java.io.*;
import java.util.*;

/**
 *   This class implements the InvocationHandler interface. It delegates call to an embedded RemoteStub
 *   Most of the class is dedicated to method hash computation, as defined in the RMI spec.
 *      
 *   @author Rickard 謆erg (rickard@dreambean.com)
 */
public class DynamicStubHandler
   implements InvocationHandler, java.io.Serializable
{
   public static void init()
   {
      System.setProperty("java.protocol.handler.pkgs", "smartproxy");
   }

   public static Object resolve(RemoteStub obj, Class cl)
   {
      DynamicStubHandler stubHandler = new DynamicStubHandler();
      Object proxy = Proxy.newProxyInstance(obj.getClass().getClassLoader(),
                                          new Class[] { cl },
                                          stubHandler);
      stubHandler.setProxy(obj);
      
      return proxy;
   }
   
   RemoteStub stub;
   transient HashMap hashes;
   
   static HashMap interfaceMethodHashes = new HashMap();

   static HashMap getInterfaceHashes(Class intf)
   {
      synchronized(DynamicStubHandler.class)
      {
         HashMap map = (HashMap)interfaceMethodHashes.get(intf);
         if (map == null)
         {
            // Create method hashes
            Method[] methods = intf.getDeclaredMethods();
            map = new HashMap();
            for (int i = 0; i < methods.length; i++)
            {
               Method method = methods[i];
               Class[] parameterTypes = method.getParameterTypes();
               String methodDesc = method.getName()+"(";
               for(int j = 0; j < parameterTypes.length; j++)
               {
                  methodDesc += getTypeString(parameterTypes[j]);
               }
               methodDesc += ")"+getTypeString(method.getReturnType());
            
               try
               {
                  long hash = 0;
                  ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream(512);
                  MessageDigest messagedigest = MessageDigest.getInstance("SHA");
                  DataOutputStream dataoutputstream = new DataOutputStream(new DigestOutputStream(bytearrayoutputstream, messagedigest));
                  dataoutputstream.writeUTF(methodDesc);
                  dataoutputstream.flush();
                  byte abyte0[] = messagedigest.digest();
                  for(int j = 0; j < Math.min(8, abyte0.length); j++)
                    hash += (long)(abyte0[j] & 0xff) << j * 8;
                  map.put(method, new Long(hash));
               } catch (Exception e)
               {
                  e.printStackTrace();
               }
            }
            
            interfaceMethodHashes.put(intf, map);
         }
         
         return map;
      }
   }
   
   static String getTypeString(Class cl)
   {
      if (cl == Byte.TYPE)
      {
         return "B";
      } else if (cl == Character.TYPE)
      {
         return "C";
      } else if (cl == Double.TYPE)
      {
         return "D";
      } else if (cl == Float.TYPE)
      {
         return "F";
      } else if (cl == Integer.TYPE)
      {
         return "I";
      } else if (cl == Long.TYPE)
      {
         return "J";
      } else if (cl == Short.TYPE)
      {
         return "S";
      } else if (cl == Boolean.TYPE)
      {
         return "Z";
      } else if (cl == Void.TYPE)
      {
         return "V";
      } else if (cl.isArray())
      {
         return "["+getTypeString(cl.getComponentType());
      } else
      {
         return "L"+cl.getName().replace('.','/')+";";
      }
   }
   
   // Public --------------------------------------------------------
   public void setProxy(RemoteStub stub)
   {
      this.stub = stub;
   }
   
   public void setHash(HashMap hashes)
   {
      this.hashes = hashes;
   }
   
   // InvocationHandler implementation ------------------------------
   public Object invoke(Object proxy,
                     Method method,
                     Object[] args)
              throws Throwable
   {
      return stub.getRef().invoke(stub, method, args, getHash(method, proxy));
   }
   
   protected long getHash(Method m, Object proxy)
   {
      if (hashes == null)
      {
         hashes = getInterfaceHashes(proxy.getClass().getInterfaces()[0]);
      }
      
      Long l = (Long)hashes.get(m);
      if (l != null)
         return l.longValue();
      else
         return ((Long)getInterfaceHashes(m.getDeclaringClass()).get(m)).longValue();
   }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人免费av| 亚洲va欧美va天堂v国产综合| 男女视频一区二区| www.av亚洲| 精品伦理精品一区| 婷婷综合在线观看| 欧美亚洲日本一区| 亚洲女人的天堂| 成人看片黄a免费看在线| 精品成人一区二区三区| 视频一区视频二区在线观看| 色天天综合色天天久久| 国产精品美女一区二区| 国产精品一二三四| 久久久久久一级片| 国产九色sp调教91| 中文字幕亚洲欧美在线不卡| 国产不卡视频在线观看| 国产视频一区不卡| 国产aⅴ综合色| 一区二区三区蜜桃网| 91成人免费网站| 亚洲综合色视频| 91国产福利在线| 久久精品国产精品亚洲精品| 精品剧情在线观看| 91老司机福利 在线| 亚洲精品视频自拍| 欧美三级日韩三级| 日韩av成人高清| 制服丝袜亚洲色图| 奇米色777欧美一区二区| 中文字幕日韩精品一区| 日韩一级成人av| 国产精品一二三区| 亚洲一级二级在线| 欧美激情在线观看视频免费| eeuss鲁片一区二区三区 | 国产精品一品二品| 亚洲成年人影院| 中文字幕精品—区二区四季| 欧美一区二区三区在线观看| 免费成人结看片| 一区二区三区在线播| 国产亚洲欧美在线| 欧美一区二区三区在线视频 | 亚洲一区二区三区国产| 久久久www成人免费毛片麻豆| 精品视频在线视频| 99久久精品情趣| 亚洲福利视频一区二区| 欧美www视频| 欧美群妇大交群的观看方式| 国产美女一区二区三区| 亚洲人精品一区| 国产区在线观看成人精品| 色综合天天综合| 午夜电影网亚洲视频| 亚洲精品一二三| 日韩美女视频一区| 欧美xingq一区二区| 欧美精品色综合| 成人综合在线观看| 国产精品一级二级三级| 久久国产精品露脸对白| 热久久国产精品| 午夜久久久久久久久久一区二区| 一区二区三区免费观看| 夜夜嗨av一区二区三区网页| 亚洲精品水蜜桃| 亚洲黄色尤物视频| 一区二区三区在线观看国产| 亚洲三级在线免费观看| 亚洲少妇30p| 亚洲视频在线一区二区| 日韩理论片网站| 亚洲桃色在线一区| 亚洲靠逼com| 亚洲影视在线观看| 午夜私人影院久久久久| 天天操天天干天天综合网| 天天av天天翘天天综合网色鬼国产| 亚洲国产欧美一区二区三区丁香婷| 一区二区三区欧美视频| 亚洲一区电影777| 日本中文在线一区| 激情六月婷婷久久| 日韩福利视频导航| 久久99国产精品麻豆| 亚洲国产成人91porn| 亚洲国产婷婷综合在线精品| 首页亚洲欧美制服丝腿| 麻豆极品一区二区三区| 日韩专区中文字幕一区二区| 男女视频一区二区| 国产河南妇女毛片精品久久久| 蜜乳av一区二区三区| 久久99久久99精品免视看婷婷| 国产一区二区三区免费播放| 成人手机电影网| 色综合一区二区三区| 欧美精品成人一区二区三区四区| 日韩午夜三级在线| 日本一区二区三区在线观看| 亚洲激情中文1区| 久久成人综合网| 成人动漫一区二区在线| 成人免费视频免费观看| 一本色道久久综合亚洲aⅴ蜜桃 | 7777精品久久久大香线蕉| 精品国产91乱码一区二区三区| 国产精品家庭影院| 一色屋精品亚洲香蕉网站| 午夜视频久久久久久| 国产成人自拍高清视频在线免费播放| 91丝袜美腿高跟国产极品老师| 欧美精品丝袜久久久中文字幕| 国产欧美一区二区精品忘忧草| 亚洲精品福利视频网站| 国产在线播放一区二区三区| 色系网站成人免费| 久久久国产午夜精品| 亚洲福利视频导航| 成人ar影院免费观看视频| 欧美一级一区二区| 综合久久国产九一剧情麻豆| 久久99国产精品麻豆| 欧美亚洲另类激情小说| 久久久亚洲午夜电影| 日韩在线一区二区| 99久久国产免费看| 久久亚洲精华国产精华液 | 日韩精品一区二区三区四区视频 | 国产成人精品网址| 9191国产精品| 亚洲欧美一区二区三区极速播放| 久久精品99久久久| 欧美日韩亚洲综合在线| 1区2区3区国产精品| 国产精品18久久久久久vr| 欧美精品在线视频| 亚洲综合成人在线| 99精品一区二区三区| 久久精品一区二区三区四区| 美女一区二区久久| 欧美日韩国产首页| 伊人色综合久久天天人手人婷| 成人午夜又粗又硬又大| 26uuu亚洲综合色| 免费xxxx性欧美18vr| 8v天堂国产在线一区二区| 一区二区三区欧美在线观看| www.激情成人| 国产精品视频一二三区| 国产精品一区免费视频| 久久久久综合网| 国产乱子伦一区二区三区国色天香| 91精品国产综合久久精品| 日韩国产在线一| 欧美人牲a欧美精品| 亚洲h动漫在线| 欧美日韩免费电影| 亚洲午夜精品久久久久久久久| 色猫猫国产区一区二在线视频| **性色生活片久久毛片| 91同城在线观看| 一区二区三区精品在线| 欧美色综合网站| 丝袜亚洲另类欧美| 91精品国产色综合久久不卡蜜臀 | 91麻豆精品国产综合久久久久久| 亚洲成人资源网| 7777精品久久久大香线蕉| 天天操天天干天天综合网| 欧美电影在哪看比较好| 日本美女一区二区三区| 精品少妇一区二区三区视频免付费| 经典三级在线一区| 久久精品一区二区三区不卡 | 国产在线精品一区在线观看麻豆| 精品福利二区三区| 国产麻豆成人传媒免费观看| 日本一区二区久久| 91色婷婷久久久久合中文| 亚洲乱码日产精品bd| 欧美日韩国产综合久久| 日本午夜精品视频在线观看| 久久夜色精品一区| 91在线观看免费视频| 同产精品九九九| 国产欧美一区二区精品仙草咪| 91视视频在线直接观看在线看网页在线看| 一区二区三区在线观看欧美| 日韩午夜激情免费电影| 国产91精品在线观看| 欧美不卡一二三| 亚洲乱码精品一二三四区日韩在线| 欧美私人免费视频| 麻豆精品视频在线观看免费 | 国产精品午夜在线观看|