美文网首页
JAVA_代理_动态代理 (jdk代理)

JAVA_代理_动态代理 (jdk代理)

作者: 打瞌睡了丶丶丶 | 来源:发表于2018-09-08 17:13 被阅读0次

通过动态代理,可以动态的在内容中构建代理对象(在程序运行时运用反射机制动态创建)
使用动态代理,要求目标对象必须实现了接口

1)定义接口
2)目标对象类实现接口
3)代理对象类实现InvocationHandler接口

    public class XXX implements InvocationHandler{

    //目标对象
    private Object target;
    
    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        // TODO Auto-generated method stub
        
        String name = method.getName();
        if(name.equals("xianglong18")){
            //调用目标对象方法
            Object ret = method.invoke(this.target, args);
            System.out.println("增加的内容");
            return ret;
        }else{
            return method.invoke(this.target, args);
        }
    }
    
    //设置目标对象,返回代理对象
    public Object bind(Object target){
        this.target = target;
        return Proxy.newProxyInstance(target.getClass().getClassLoader(), //类加载器
                target.getClass().getInterfaces(), //对象接口
                this);
    }

}

相关文章

网友评论

      本文标题:JAVA_代理_动态代理 (jdk代理)

      本文链接:https://www.haomeiwen.com/subject/cemfgftx.html