Cglib代理中intercept方法的問題
例子中intercept方法調用目標對象的方法的代碼是proxy.invokeSuper(obj, args); 如果目標類中有多個方法,proxy.invokeSuper(obj, args); 調用的是哪個方法?是全部調用還是?或者說,如何調用其中某個特定的方法?
例子中intercept方法調用目標對象的方法的代碼是proxy.invokeSuper(obj, args); 如果目標類中有多個方法,proxy.invokeSuper(obj, args); 調用的是哪個方法?是全部調用還是?或者說,如何調用其中某個特定的方法?
2018-02-25
舉報
2018-03-02
在使用中指定哪個就調用哪個,比如說例子中測試類調用了Train.move()方法,那么就是move()方法,如果Train類中還存在其他方法比如put()方法,那么則通過Train.put()調用。而proxy.invokeSuper(obj, args);中的args是指定在調用方法時可否帶參數。如果proxy.invokeSuper(obj);的話。在調用方法時是不可以帶參數的。