91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

java中JDK動態代理的原理是什么

發布時間:2021-04-22 16:26:01 來源:億速云 閱讀:138 作者:Leah 欄目:編程語言

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

Java可以用來干什么

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動態代理的原理是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

修武县| 邻水| 台南市| 灌南县| 慈利县| 页游| 鸡泽县| 太仓市| 依兰县| 旌德县| 宝应县| 芷江| 都昌县| 乌海市| 芒康县| 新津县| 铜山县| 东安县| 长阳| 图们市| 多伦县| 鸡西市| 安化县| 广东省| 长子县| 嘉兴市| 孙吴县| 通榆县| 东乌珠穆沁旗| 武汉市| 当阳市| 邓州市| 乌兰浩特市| 老河口市| 大足县| 德州市| 乳源| 资源县| 曲沃县| 瓮安县| 讷河市|