這篇“java動(dòng)態(tài)生成代理類(lèi)的方法”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“java動(dòng)態(tài)生成代理類(lèi)的方法”文章吧。
成都創(chuàng)新互聯(lián)主要從事網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)東源,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):028-86922220
說(shuō)明
1、調(diào)用Proxy類(lèi)的newProxyInstance方法來(lái)獲取代理類(lèi)實(shí)例。
2、這個(gè)代理類(lèi)實(shí)現(xiàn)了指定的接口并且會(huì)把方法調(diào)用分發(fā)到指定的調(diào)用處理器。
方法聲明
public static Object newProxyInstance(ClassLoader loader, Class>[] interfaces, InvocationHandler h) throws IllegalArgumentException
參數(shù)
loader:定義了代理類(lèi)的ClassLoder
interfaces:代理類(lèi)實(shí)現(xiàn)的接口列表
h:調(diào)用處理器,也就是我們上面定義的實(shí)現(xiàn)了InvocationHandler接口的類(lèi)實(shí)例
實(shí)例
public class Main { public static void main(String[] args) { //創(chuàng)建中介類(lèi)實(shí)例 DynamicProxy inter = new DynamicProxy(new Vendor()); //加上這句將會(huì)產(chǎn)生一個(gè)$Proxy0.class文件,這個(gè)文件即為動(dòng)態(tài)生成的代理類(lèi)文件 System.getProperties().put("sun.misc.ProxyGenerator.saveGeneratedFiles","true"); //獲取代理類(lèi)實(shí)例sell Sell sell = (Sell)(Proxy.newProxyInstance(Sell.class.getClassLoader(), new Class[] {Sell.class}, inter)); //通過(guò)代理類(lèi)對(duì)象調(diào)用代理類(lèi)方法,實(shí)際上會(huì)轉(zhuǎn)到invoke方法調(diào)用 sell.sell(); sell.ad(); } }
以上就是關(guān)于“java動(dòng)態(tài)生成代理類(lèi)的方法”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。