是不是调用代理类实例的方法的时候,都会自动调用invoke????

来源:2-3 了解 JDK 动态代理

慕函数3178513

2017-03-10 16:16

这个视频反反复复看了老大半天,有两点不懂???

  1. 调用Proxy.newProxyInstance 方法返回的值怎么就知道是Car的代理类实例???虽然定义的时候定义的是返回的是代理类实例。

  2. invoke方法里边是代理过程具体执行的类,通过m.move怎样去触发invoke??根本就理解不了。

望大神帮忙在细讲讲,万分感谢

写回答 关注

7回答

  • 慕粉18827512512
    2019-03-23 17:06:20

    你好,请问一下触发到TimeHandler.invoke()的方法  invoke里面的参数 是怎么传过来的?谢谢

  • 慕圣6698645
    2018-12-14 15:16:36

    代理实例去调用接口的方法时,并不会去执行这个方法,而是会触发TimeHandler.invoke(),这样没有实现类的接口方法也能执行了

  • 慕圣6698645
    2018-12-13 17:07:55

    m.move()相当于move.invoke(m)

  • IT小白丶4167031
    2018-04-29 16:06:48

    第一个问题你应该重新理解下动态代理的定义和反射机制,第二问题是此时的m是动态代理产生的代理实例,而不是new moveable()产生的实例对象,所以当m.move()时相当于proxy.invoke()。

  • nanisore_0
    2017-09-24 23:52:54

    题主现在解决了这个问题吗?特别是第二个问题。求解啊。

  • 精慕门9839799
    2017-09-02 19:34:17

    这个问题  我也疑惑  不知道你解决了么


  • qq_草根天子_0
    2017-03-14 11:44:44

    看下反射机制吧!

模式的秘密---代理模式

本节课程将带你领略Java编程语言中代理模式的奥妙

54906 学习 · 125 问题

查看课程

相似问题