国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 开封市| 廉江市| 屏山县| 调兵山市| 保定市| 台前县| 江都市| 吴江市| 玉龙| 乐平市| 双牌县| 盐池县| 安丘市| 琼海市| 台湾省| 太湖县| 闻喜县| 芦山县| 横山县| 陆河县| 鄄城县| 建湖县| 永川市| 乌审旗| 廊坊市| 浦江县| 安远县| 清远市| 法库县| 瑞安市| 张掖市| 房产| 章丘市| 双流县| 连州市| 准格尔旗| 通江县| 新源县| 洮南市| 湄潭县| 东港市|