问答详情
源自:2-4 使用 cglib 动态产生代理

Cglib代理中intercept方法的问题

例子中intercept方法调用目标对象的方法的代码是proxy.invokeSuper(obj, args); 如果目标类中有多个方法,proxy.invokeSuper(obj, args); 调用的是哪个方法?是全部调用还是?或者说,如何调用其中某个特定的方法?

提问者:qq_荻芦落沙_0 2018-02-25 11:33

个回答

  • 小丶冬瓜
    2018-03-02 16:38:00
    已采纳

    在使用中指定哪个就调用哪个,比如说例子中测试类调用了Train.move()方法,那么就是move()方法,如果Train类中还存在其他方法比如put()方法,那么则通过Train.put()调用。而proxy.invokeSuper(obj, args);中的args是指定在调用方法时可否带参数。如果proxy.invokeSuper(obj);的话。在调用方法时是不可以带参数的。