0

如何在我的建议中获得注释参数的值。我有如下场景:

@Custom
public void xxxx(@Param("a1") Object a, @Param("a2") Object b)
{
    //TODO
}

我希望为所有具有 @Custom 注释的方法定义切入点,这里没什么特别的。问题是我想在建议中获取用@Param 标记的参数和注释本身的值。这种带注释的参数的数量不是固定的,可以有任何数量或根本没有。

到目前为止,我已经使用了反射,并且我能够获取标有注释的参数,但不能获取注释的值。

4

1 回答 1

1

这就是我获得注释价值的方式:

我的注释是@Name:

@Retention(RetentionPolicy.RUNTIME) 
@Target(ElementType.PARAMETER)
@interface Name {
    String value();
}

还有负责获取它的代码:

Annotation[][] parametersAnnotations = method.getParameterAnnotations();

for (int i = 0; i < parametersAnnotations.length; i++) {
    Annotation[] parameterAnnotations = parametersAnnotations[i];
    Annotation nameAnnotation = null;

    for (Annotation annotation : parameterAnnotations) {
        if (annotation.annotationType().equals(Name.class)) {
            nameAnnotation = annotation;
            break;
        }
    }

    if (nameAnnotation != null) {
        String textInAnnotation = ((Name)nameAnnotation).value();
    }
}
于 2013-10-16T11:48:34.583 回答