问答详情
源自:3-3 动态代理实现添加 InvocationHandler

在给h.invoke(this,md)传参时,有一点不解,请老师解答

for循环infce.getMethods()时,每一次循环得到的Method m对象不就可以直接传给h.invoke(this,m);中吗?为什么还要

“Method md =” + infce.getName() + ".class.getMethod(\"" + m.getName() + "\");"重新获取一下method呢?

我的问题有可能描述的不是很清楚哈,同时希望老师给解答!

提问者:张家妮儿 2015-03-14 19:14

个回答

  • David
    2015-03-16 20:32:50
    已采纳

    您好:

          其实你实验一下就会知道结果,生成的代理$Proxy0.java文件部分内容如下:

          h.invoke(this,public abstract void com.imooc.proxy.Moveable.move());很显然不是我们想要的结果。

          这里很容易将外层代码和里层代码混到一起,注意一下就好了。

  • 张家妮儿
    2015-03-25 11:02:18

    恩恩,这暴露了我没有实际操作,哈哈,后来我操作了,知道了,也很感谢你回答