新聞中心
Java程序中的代理類提供在運(yùn)行時(shí)創(chuàng)建類的能力,這個(gè)新建的類能實(shí)現(xiàn)你指定的接口。 當(dāng)然你不能在運(yùn)行時(shí)為要實(shí)現(xiàn)的接口中的方法定義新代碼,而是提供一個(gè)調(diào)用處理器來實(shí)現(xiàn)。調(diào)用處理器是實(shí)現(xiàn)了InvocationHandler接口的類的對象,此接口只有一個(gè)方法:

創(chuàng)新互聯(lián)是一家專業(yè)提供莒縣企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站制作、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為莒縣眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
| 以下是引用片段: Object invoke(Object proxy,Method mtd,Object[] args) |
其中proxy是代理對象;mtd是描述方法的類的對象,此對象執(zhí)行它的invoke(Object obj,Object[] args)方法可以調(diào)用封裝在Mthod對象中的方法;args是存儲(chǔ)了此方法參數(shù)的數(shù)組。
建立代理對象:使用Proxy類的newProxyInstance方法,其格式如下:
以下是引用片段: Object proxy=Proxy.newProxyInstance(null,interfaces,handler); |
其中第一個(gè)參數(shù)是一個(gè)類加載器,這里使用默認(rèn)加載器,用null表示;第二個(gè)參數(shù)是一個(gè)Class的數(shù)組,其每個(gè)元素是一個(gè)接口,這就是用來指定要實(shí)現(xiàn)的一組接口,哪怕只有一個(gè)接口也要通過數(shù)組來傳遞;第三個(gè)參數(shù)就是調(diào)用處理器。
Java程序中,在代理對象上調(diào)用方法時(shí),調(diào)用處理器的invoke方法會(huì)被自動(dòng)調(diào)用,正在調(diào)用的方法和參數(shù)自動(dòng)傳遞給inboke方法的jmtdt args形式參數(shù)中,同時(shí)也會(huì)用args參數(shù)數(shù)組中的參數(shù)去調(diào)用mtd對象中指定的方法。
代理的應(yīng)用:方法調(diào)用跟蹤(把要跟蹤的對象包裝成代理類對象);為遠(yuǎn)程調(diào)用方法提供路由;用戶接口事件與動(dòng)作關(guān)聯(lián)(C#中有類似的功能)。
【編輯推薦】
- 高手Java核心技術(shù)學(xué)習(xí)筆記
- 如何使用 JavaScript XSLT 處理 XML 文件
- JSP結(jié)合XML+XSLT將輸出轉(zhuǎn)換HTML
- Java通過JNI調(diào)用C語言的方法
- JAVA環(huán)境變量的設(shè)置
當(dāng)前題目:Java程序開發(fā)中代理技術(shù)的使用方法
文章地址:http://m.5511xx.com/article/dheehhh.html


咨詢
建站咨詢
