关于匿名内部类中的参数问题

关于匿名内部类中的参数问题

public Object postProcessAfterInitialization(final Object bean, String beanName) throws BeansException {
//        System.out.println("第八步:Bean初始化后的方法");
       if ("userDao".equals(beanName)) {
           Object proxy = Proxy.newProxyInstance(bean.getClass().getClassLoader(), bean.getClass().getInterfaces(), new InvocationHandler() {
               @Override
               public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                   if ("save".equals(method.getName())){
                       System.out.println("权限校验。。。");
                       return method.invoke(bean,args);
                   }
                   return method.invoke(bean,args);
               }
           });
           return proxy;
       }else {
           return bean;
       }

   }

以上代码的匿名内部类中有个invoke方法,方法中的(Object proxy)参数是干什么用的?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕阿满 2020-01-03 19:45:13

invoke(Object proxy, Method method, Object[] args)方法的第一个参数绝大多数情况下并没有什么用,可能在使用proxy回调机制时作为形参用到。祝:学习愉快~

好帮手慕阿满 2020-01-03 16:02:22

同学你好,在invoke()方法中并没有用到参数proxy,这个参数应该是在Proxy代理类调用某个目标对象时,采用回调机制调用InvocationHandler的invoke(Object proxy, Method method, Object[] args)方法,这个时候proxy对象则成为形式参数。

祝:学习愉快~

  • 提问者 慕沐8221787 #1
    你到底在说什么?讲来讲去,我就是说为什么invoke方法中没有用到(Object proxy)这个参数,那这个参数有什么用呢
    2020-01-03 18:09:49
好帮手慕阿满 2020-01-03 10:48:42

同学你好,同学是指如下的proxy吗?

http://img1.sycdn.imooc.com//climg/5e0eab73095207ef06900147.jpg

这个表示代理类代理的真实代理对象,用来关联真实代理对象的。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 慕沐8221787 #1
    在invoke方法体中怎么没有用到这个参数?
    2020-01-03 10:51:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码