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

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

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);
    }

}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容