溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java怎么動態(tài)生成代理類

發(fā)布時間:2023-04-28 09:43:52 來源:億速云 閱讀:125 作者:zzz 欄目:編程語言

這篇文章主要講解了“java怎么動態(tài)生成代理類”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“java怎么動態(tài)生成代理類”吧!

說明

1、調(diào)用Proxy類的newProxyInstance方法來獲取代理類實(shí)例。

2、這個代理類實(shí)現(xiàn)了指定的接口并且會把方法調(diào)用分發(fā)到指定的調(diào)用處理器。

方法聲明

public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgumentException

參數(shù)

loader:定義了代理類的ClassLoder

interfaces:代理類實(shí)現(xiàn)的接口列表

h:調(diào)用處理器,也就是我們上面定義的實(shí)現(xiàn)了InvocationHandler接口的類實(shí)例

實(shí)例

public class Main {
    public static void main(String[] args) {
        //創(chuàng)建中介類實(shí)例
        DynamicProxy inter = new DynamicProxy(new Vendor());
        //加上這句將會產(chǎn)生一個$Proxy0.class文件,這個文件即為動態(tài)生成的代理類文件
        System.getProperties().put("sun.misc.ProxyGenerator.saveGeneratedFiles","true");
 
        //獲取代理類實(shí)例sell
        Sell sell = (Sell)(Proxy.newProxyInstance(Sell.class.getClassLoader(), new Class[] {Sell.class}, inter));
 
        //通過代理類對象調(diào)用代理類方法,實(shí)際上會轉(zhuǎn)到invoke方法調(diào)用
        sell.sell();
        sell.ad();
    }
}

Java的優(yōu)點(diǎn)是什么

1、簡單,只需理解基本的概念,就可以編寫適合于各種情況的應(yīng)用程序;

2、面向?qū)ο螅?/p>

3、分布性,Java是面向網(wǎng)絡(luò)的語言;

4、魯棒性,java提供自動垃圾收集來進(jìn)行內(nèi)存管理,防止程序員在管理內(nèi)存時容易產(chǎn)生的錯誤;

5、安全性,用于網(wǎng)絡(luò)、分布環(huán)境下的Java必須防止病毒的入侵;

6、體系結(jié)構(gòu)中立,只要安裝了Java運(yùn)行時系統(tǒng),就可在任意處理器上運(yùn)行;

7、可移植性,Java可以方便地移植到網(wǎng)絡(luò)上的不同機(jī)器;

8、解釋執(zhí)行,Java解釋器直接對Java字節(jié)碼進(jìn)行解釋執(zhí)行。

感謝各位的閱讀,以上就是“java怎么動態(tài)生成代理類”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對java怎么動態(tài)生成代理類這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI