首页 > 编程语言 > 详细

很简单Java动态代理实现

时间:2019-02-25 18:56:40      阅读:142      评论:0      收藏:0      [点我收藏+]

1.Base接口

public interface Base {
    void baseMethod();
}

2.CustomHandler类

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

public class CustomHandler<T> implements InvocationHandler {
    T target;

    public CustomHandler(T target){
        this.target = target;
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        System.out.println("start...");
        Object result = method.invoke(target, args);
        System.out.println("end...");
        return result;
    }
}

3.测试

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

public class ProxyTest {

    public static void main(String[] args) {
        Base base = () -> System.out.println("in hand...");
        InvocationHandler handler = new CustomHandler<>(base);
     // 生成代理对象 Base baseProxy
= (Base)Proxy.newProxyInstance(ProxyTest.class.getClassLoader(), new Class[]{Base.class}, handler); baseProxy.baseMethod(); } }
start...
in hand...
end...

Process finished with exit code 0

 

很简单Java动态代理实现

原文:https://www.cnblogs.com/acelly/p/10432541.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!