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

来源:3-3 动态代理实现添加 InvocationHandler

张家妮儿

2015-03-14 19:14

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

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

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

写回答 关注

2回答

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

    您好:

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

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

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

    张家妮儿

    非常感谢!

    2015-03-25 11:26:52

    共 1 条回复 >

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

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

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

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

54912 学习 · 98 问题

查看课程

相似问题