java.reflection ProceedingJoinPoint

标签 java aspectj

@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/

相关文章:

aop - Hystrix 命令不在 Hystrix 环境中运行

java - 我们可以使用 dex2jar 工具或任何其他方式混淆 java 中的注释吗?

java - 如何使用 AspectJ 捕获所有新创建的 Widget 类型或子类型对象?

java - 指定正确的 spring-instrument agent jar 的最佳实践

java - Clojure AWS Lambda 函数中的 OpenCV 目标大于 250MB,如何减小其大小?

java - Netbeans 抛出 NumberFormatException

java - 使用 jolt 根据位置进行数组转换的 Json

java - 使用 Spring 在 AspectJ 类中检索 bean

java - 使用同步方法的类的多个实例

java - iText 中的图像定位 - Java