如何获取方法参数的值?
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 的文档。
我有方面:
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 的文档。