如何获取方法参数的值?

How to get values of method's parameters?

我有方面:

public aspect TestAspect {
    pointcut publicMethodExecuted(): execution(public !static * *(..));

    int around() : publicMethodExecuted() {
        //I need parameters values here
        //to write their to log

        int original_return_value = proceed();
        return original_return_value * 100;
    }
}

如何获取调用方法时使用的参数?我需要将它们写入日志文件。

我最感兴趣的是原生 AspectJ 方式,而不是使用反射。

对不起,如果我误解了,但这应该带上参数

Object[] args = thisJoinPoint.getArgs();

您可以在方面内使用 thisJoinPoint 访问连接点。

您可以使用 thisJoinPoint.getArgs() 访问您的参数。

此外,您可以使用 thisJoinPointStaticPart.

访问方法调用的签名

例如您可以使用 thisJoinPointStaticPart.getSignature().getName().

访问方法名称

有关更多信息,请使用 JoinPoint and JoinPoint.StaticPart 的文档。