Jdk動態(tài)代理

1.提供一個接口

2.被代理類

3.創(chuàng)建代理類

public class StudentJdkProxy implements InvocationHandler {

// 定義一個要代理的原始對象

private Object obj;

// 構(gòu)造方法

public StudentJdkProxy(Object obj) {

super();

this.obj = obj;

}

// 獲得代理對象

public Object getProxy() {

// 參數(shù)1:被代理對象類加載器,參數(shù)2:被代理類實現(xiàn)的所有的接口,參數(shù)3:被代理對象

return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), this);

}

// 參數(shù)1:代理對象,參數(shù)2:被代理的方法,參數(shù)3:方法需要的參數(shù)

@Override

public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

before();

// 參數(shù)1:被代理對象,參數(shù)2:方法參數(shù)

Object result = method.invoke(this.obj, args);

after();

return result;

}

public void before(){

System.out.println("前面執(zhí)行");

}

public void after(){

System.out.println("后面執(zhí)行");

}

}

4.測試類

5.打印結(jié)果

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容