真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

深入淺析java1.8中動(dòng)態(tài)代理的原理-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)深入淺析java 1.8 中動(dòng)態(tài)代理的原理,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)提供從項(xiàng)目策劃、軟件開發(fā),軟件安全維護(hù)、網(wǎng)站優(yōu)化(SEO)、網(wǎng)站分析、效果評(píng)估等整套的建站服務(wù),主營(yíng)業(yè)務(wù)為網(wǎng)站制作、做網(wǎng)站,成都APP應(yīng)用開發(fā)以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。創(chuàng)新互聯(lián)公司深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

JDK8動(dòng)態(tài)代理源碼分析

動(dòng)態(tài)代理的基本使用就不詳細(xì)介紹了:

例子:

class proxyed implements pro{
 @Override
 public void text() {
  System.err.println("本方法");
 }
}

interface pro {
 void text();
}

public class JavaProxy implements InvocationHandler {
  private Object source;
  public JavaProxy(Object source) {
   super();
   this.source = source;
  }
  public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
   System.out.println("before");
   Object invoke = method.invoke(source, args);
   System.out.println("after");
   return invoke;
  }
  public Object getProxy(){
   return Proxy.newProxyInstance(getClass().getClassLoader(), source.getClass().getInterfaces(), this);
  }
  public static void main(String[] args) throws IllegalAccessException, InvocationTargetException, InstantiationException, NoSuchMethodException {
   //第一種,自己寫
   //1.設(shè)置saveGeneratedFiles值為true則生成 class字節(jié)碼文件方便分析
   System.getProperties().put("sun.misc.ProxyGenerator.saveGeneratedFiles", "true");
   //2.獲取動(dòng)態(tài)代理類
   Class proxyClazz = Proxy.getProxyClass(pro.class.getClassLoader(),pro.class);
   //3.獲得代理類的構(gòu)造函數(shù),并傳入?yún)?shù)類型InvocationHandler.class
   Constructor constructor = proxyClazz.getConstructor(InvocationHandler.class);
   //4.通過(guò)構(gòu)造函數(shù)來(lái)創(chuàng)建動(dòng)態(tài)代理對(duì)象,將自定義的InvocationHandler實(shí)例傳入
   pro iHello = (pro) constructor.newInstance(new JavaProxy(new proxyed()));
   //5.通過(guò)代理對(duì)象調(diào)用目標(biāo)方法
   iHello.text();
   //第二種,調(diào)用JDK提供的方法,實(shí)現(xiàn)了2~4步
   Proxy.newProxyInstance(JavaProxy.class.getClassLoader(),proxyed.class.getInterfaces(),new JavaProxy(new proxyed()));
  }
}

網(wǎng)頁(yè)標(biāo)題:深入淺析java1.8中動(dòng)態(tài)代理的原理-創(chuàng)新互聯(lián)
URL分享:http://weahome.cn/article/gsghd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部