java.reflection ProceedingJoinPoint

时间:2014-10-01 10:34:42

标签: java aspectj

@Around("toSomething()")
public void check(ProceedingJoinPoint pJPoint){
    Object[] args=pJPoint.getArgs();
    makeSomeChange(args);
    pJPoint.proceed(args);
}

在上面的例子中,args中所做的更改会反映在调用方法中。

我真正要问的是,将继续将此args传递给执行被AspectJ拦截的方法。很抱歉没问清楚。

1 个答案:

答案 0 :(得分:1)

不,为了更改args数组中的值,您必须这样做:

args[0] = process(args[0]);

在Java中,您无法通过将值传递给方法来更改数组中的值,您必须传递数组,或者在调用后修改数组。

我不知道你的change(...)方法做了什么,但是无论它设置的是什么都没有放在args数组中