码迷,mamicode.com
首页 > 其他好文 > 详细

JDK的动态代理-多接口

时间:2015-06-01 20:08:10      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

public interface A {
    public void aa();
}
public interface B {
    public void bb();
}
public class ABImpl implements A, B{
    public void aa() {
        System.out.println("aaaa");
    }
    public void bb() {
        System.out.println("bb");
    }
}
public class Logger {
    public void logging() {
        System.out.println("logging");
    }
}
public class JDKProxyMultyTest implements InvocationHandler{

    private Object target;
    private Logger logger;
    
    public JDKProxyMultyTest(Object target, Logger logger) {
        super();
        this.target = target;
        this.logger = logger;
    }

    public Object invoke(Object proxy, Method method, Object[] args)
            throws Throwable {
        this.logger.logging();
        method.invoke(target, args);
        return null;
    }
}
    @Test
    public void test1(){
        Object target = new ABImpl();
        Logger logger = new Logger();
        JDKProxyMultyTest jdkProxyMultyTest = new JDKProxyMultyTest(target, logger);
        A proxyA = (A) Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), jdkProxyMultyTest);
        proxyA.aa();
        B proxyB = (B) Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), jdkProxyMultyTest);
        proxyB.bb();
    }

 

JDK的动态代理-多接口

标签:

原文地址:http://www.cnblogs.com/jsnan/p/4544575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!