看啥推荐读物
专栏名称: 码农每日一题
每天只需要花费几分钟就能收获一个技术知识点,工作日每天早晨推送一个技术面试知识点,让你在每天繁忙的工作之余也能有系统性的面试复习,随时做好涨薪准备,专注于 Java、Android、Unix 高级 C,做一个有态度的公众号。
今天看啥  ›  专栏  ›  码农每日一题

问:JDK 动态代理调用接口方法时是怎么做到先调用 invoke 方法的?

码农每日一题  · 公众号  ·  · 2020-12-30 11:55
上一个推文我们解答了 JDK 动态代理深度问题之一的《问:为什么 JDK 的动态代理只能使用接口?》。这一篇我们继续解答关于 JDK 动态代理的另一个深度问题:JDK 动态代理调用自己接口方法时是怎么做到先调用 invoke 方法的?案例重现问题我们平时使用动态代理最典型的样例如下:// 接口定义public interface Foo {    void add();}InvocationHandler handler = new InvocationHandler() {    @Override    public Object invoke(Object proxy, Method method, Object[] args)        throws Throwable {        //动态代理增强实现        }}Foo f = (Foo) Proxy.newProxyInstance(Foo.class.getClassLoader(), new Class>[] { Foo.class }, handler);//调用接口方法f.add();你有没有想过,通过上面代码,明明最后我调用的是 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照