這篇文章將為大家詳細講解有關java中JDK動態代理的原理是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

創新互聯堅持“要么做到,要么別承諾”的工作理念,服務領域包括:做網站、成都網站制作、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的五寨網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
Java主要應用于:1. web開發;2. Android開發;3. 客戶端開發;4. 網頁開發;5. 企業級應用開發;6. Java大數據開發;7.游戲開發等。
1、說明
Java中提供了一個動態代理類 Proxy,Proxy 并不是我們所說的代理對象的類,而是提供了一個創建代理對象的靜態方法(newProxyInstance)來獲取代理對象。
2、實例
public class HelloWorld {
public static void main(String[] args) {
// 獲取代理對象
ProxyFactory factory = new ProxyFactory();
SellTickets proxyObject = factory.getProxyObject();
proxyObject.sell();
}
}
// 賣票接口
interface SellTickets {
void sell();
}
// 火車站,火車站具有賣票功能,所以需要實現SellTickets接口
class TrainStation implements SellTickets {
@Override
public void sell() {
System.out.println("火車站賣票");
}
}
// 代理工廠,用來創建代理對象
class ProxyFactory {
private TrainStation station = new TrainStation();
public SellTickets getProxyObject() {
// 使用Proxy獲取代理對象
/**
* newProxyInstance() 方法參數說明:
* ClassLoader loader: 類加載器,用于加載代理類,使用真實對象的類加載器即可
* Class<?>[] interfaces:真實對象所實現的接口,代理模式真實對象和代理對象實現相同的接口
* InvocationHandler h:代理對象的調用處理程序
*/
SellTickets sellTickets = (SellTickets) Proxy.newProxyInstance(
station.getClass().getClassLoader(),
new InvocationHandler() {
/**
* InvocationHandle中invoke方法參數說明:
* proxy:代理對象
* method:對應于在代理對象上調用的方法的Method實例
* args:代理對象調用接口方法是傳遞的實際參數
*/
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("代理點收取一些服務費用(JDK動態代理方法)");
// 執行真實對象
Object result = method.invoke(station, args);
return result;
}
});
return sellTickets;
}
}關于java中JDK動態代理的原理是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
當前名稱:java中JDK動態代理的原理是什么
轉載注明:http://www.yijiale78.com/article6/gjhcog.html
成都網站建設公司_創新互聯,為您提供企業建站、網站建設、軟件開發、定制開發、網站收錄、外貿建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯