国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java實現(xiàn)動態(tài)代理示例分享

2019-11-26 15:35:30
字體:
供稿:網(wǎng)友

復(fù)制代碼 代碼如下:

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class LogHandler implements InvocationHandler {
    private Object delegate;

    public Object bind(Object delegate) {
        this.delegate = delegate;
        return Proxy.newProxyInstance(delegate.getClass().getClassLoader(),
                delegate.getClass().getInterfaces(), this);
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args)
            throws Throwable {
        Object result = null;
        try {
            System.out.println("方法開始:" + method);
            result = method.invoke(delegate, args);
            System.out.println("方法結(jié)束:" + method);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
}

復(fù)制代碼 代碼如下:

public interface Animal {
    public void hello();
}

動態(tài)代理作為代理模式的一種擴展形式,廣泛應(yīng)用于框架(尤其是基于AOP的框架)的設(shè)計與開發(fā),本文將通過實例來講解Java動態(tài)代理的實現(xiàn)過程。

復(fù)制代碼 代碼如下:

public class Monkey implements Animal {

    @Override
    public void hello() {
        // TODO Auto-generated method stub
        System.out.println("hello");
    }
}

復(fù)制代碼 代碼如下:

public class Main {
    public static void main(String[] args) {
        LogHandler logHandler = new LogHandler();
        Animal animal = (Animal) logHandler.bind(new Monkey());
        animal.hello();
    }
}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 长武县| 新巴尔虎右旗| 革吉县| 新龙县| 泸水县| 叙永县| 侯马市| 延津县| 娱乐| 富宁县| 正蓝旗| 吴江市| 库尔勒市| 涞水县| 大埔县| 靖边县| 博兴县| 青浦区| 康保县| 凤阳县| 北流市| 柞水县| 宽城| 廊坊市| 高阳县| 柯坪县| 麦盖提县| 张掖市| 玛多县| 多伦县| 黔江区| 疏勒县| 崇仁县| 木里| 水富县| 宝山区| 莒南县| 韶关市| 开封市| 濉溪县| 乌什县|