@Around("toSomething()")
public void check(ProceedingJoinPoint pJPoint){
Object[] args=pJPoint.getArgs();
makeSomeChange(args);
pJPoint.proceed(args);
}
在上述情况下,args 中所做的更改是否反射(reflect)在调用方法中。
我真正想问的是,将继续将此 args 传递给其执行被 AspectJ 拦截的方法。不好意思没问清楚。
最佳答案
不,要更改 args
数组中的值,您必须这样做:
args[0] = process(args[0]);
在 Java 中,您不能通过将值传递给方法来更改数组中的值,您必须传递数组,或在调用后修改数组。
我不知道你的 change(...)
方法做了什么,但是它设置的任何内容都没有放在 args 数组中
关于java.reflection ProceedingJoinPoint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26139384/