久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

Java簡單實現動態代理模式過程解析

瀏覽:11日期:2022-08-29 08:15:33

基本知識:JDK動態代理是java.lang.reflect.*包提供的方式,它必須借助一個接口才能生成代理對象.

步驟:

1、首先建一個接口類,并提供一個實現類:

public interface ISubject { public int add(int a, int b);}

public class Subject implements ISubject { @Override public int add(int a, int b) { return a + b; }}

2、創建一個代理類,必須要實現InvocationHandler類

public class JdkProxy implements InvocationHandler { public Object target; public JdkProxy(Object target) { this.target = target; } //第一個是類加載器,采用了target本身的類加載器 //第二個是把生成的動態代理對象下掛在哪些接口下面,該寫法就是將生成的代理對象放在target真實對象所實現的所有接口下.Subject對象的接口顯然是ISubject,代理對象可以這樣聲明:ISubject proxy =xxxx; //第三個是定義實現方法邏輯的代理類,this表示當前對象,它`必須實現InvocationHandler接口的invoke方法,它就是代理邏輯方法. public Object getInstance() { Object o = Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this); return o; } //proxy:代理對象,就是getInstance方法生成的對象 //method,當前調度的方法 //args:調度方法的參數 @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println(method.getName() + '方法執行前'); Object object = method.invoke(target, args); System.out.println(object); System.out.println(method.getName() + '方法執行后'); return object; }}

3、測試類

public class ProxyTest { public static void main(String[] args) { Subject subject = new Subject(); JdkProxy jdk = new JdkProxy(subject); ISubject proxy = (ISubject) jdk.getInstance(); proxy.add(2, 3); }}

結果:

add方法執行前5add方法執行后

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 亚洲福利在线观看 | 久久夜色精品 | 在线国产区 | 国产精品久久综合 | 成年人视频在线免费观看 | 成人h动漫在线看 | 2018天天操夜夜操 | 国产精品欧美一区二区三区 | 91亚洲高清 | 一区二区三区四区在线 | 日本免费久久 | 国产中文在线 | 久久久香蕉 | 99久久日韩精品视频免费在线观看 | 成人一级| 一区在线观看视频 | 四虎5151久久欧美毛片 | 国产亚洲综合精品 | 欧美视频中文字幕 | 亚洲一区中文 | 欧美精品一区在线观看 | 色网在线观看 | 一级片福利 | 在线一区观看 | 国产日韩视频 | 夜夜骑av | 91精品国产综合久久久蜜臀粉嫩 | 亚洲一区二区三区高清 | 久久九| 亚洲一区二区三区免费在线观看 | 欧美国产一区二区三区 | 久在线观看 | 亚洲码欧美码一区二区三区 | 自拍视频免费 | 亚洲一区二区在线视频 | 国产一区 | 国产视频福利在线观看 | 天天操操 | 国产精品网站在线观看 | 精品视频在线观看一区二区 | 日韩av福利 |