码迷,mamicode.com
首页 > 编程语言 > 详细

java动态代理

时间:2018-09-25 17:30:57      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:object   load   tar   接口   rgs   system   etc   stat   get   

目标对象接口

package proxy;

public interface TargetInterface {
    void targetMethod();
}

目标对象

package proxy;

public class Target implements TargetInterface{
    @Override
    public void targetMethod() {
        System.out.println("-----目标方法执行-----");
    }
}

代理对象测试

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

public class ProxyTest {
    public  static  void main(String[] args){
        Target target = new Target();//目标对象
        TargetInterface proxy = (TargetInterface)Proxy.newProxyInstance(
                Target.class.getClassLoader(),//目标对象的类加载器
                Target.class.getInterfaces(),//目标对象所有实现的接口
                new InvocationHandler() {//
                    @Override
                    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                        System.out.println("-----目标方法执行前-----");
                        method.invoke(target,args);//执行目标方法
                        System.out.println("-----目标方法执行后-----");
                        return null;
                    }
                }
        );
        proxy.targetMethod();
    }
}

 

java动态代理

标签:object   load   tar   接口   rgs   system   etc   stat   get   

原文地址:https://www.cnblogs.com/mask-fan/p/9700355.html

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