gpt4 book ai didi

java - AspectJ - 获取带注释的方法参数的值

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:10:23 27 4
gpt4 key购买 nike

我创建了自定义注释 @MyAnn。我将用它来注释方法参数。

例如:public static call(@MyAnn String name){...}

使用 AspectJ,我如何访问和更新带有注释的所有参数的值?

我找到了一些示例代码,展示了如何创建针对自定义注释的切入点,here .

所以现在,我创建了一个带有切入点的切面。但是我不知道如何获取用 MyAnn 注释的参数的值。

@Aspect
public class MyAnnAspect {

@Around("execution(@my.package.test.MyAnn") // I hope this pointcut will work
public void changeParameter(final ProceedingJoinPoint pjp) throws Throwable {
// How I can there get parameter value (and chage it)?
}
}

最佳答案

我认为切入点不起作用,因为它不是被注释的方法,顺便说一句,你可以这样做:

MethodSignature ms = (MethodSignature) pjp.getSignature();
Method m = ms.getMethod();
Annotation[][] pa = m.getParameterAnnotations();

现在您可以遍历注解,并找到合适的注解,如果存在则通过调用 pjp.getArgs() 获取参数值。

关于java - AspectJ - 获取带注释的方法参数的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14800569/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com