如何获取注释元素的默认值?



假设我有一个注释。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation {
    int value() default 1;
}

有没有办法使用反射或其他东西来获得1的价值?

怎么样

MyAnnotation.class.getMethod("value").getDefaultValue()

是的,您可以使用Method#getDefaultValue()

返回此Method实例所表示的批注成员的默认值。

以以下示例为例

public class Example {
    public static void main(String[] args) throws Exception {
        Method method = Example.class.getMethod("method");
        MyAnnotation annot = method.getAnnotation(MyAnnotation.class);
        System.out.println(annot.value()); // the value of the attribute for this method annotation
        Method value = MyAnnotation.class.getMethod("value");
        System.out.println(value.getDefaultValue()); // the default value
    }
    @MyAnnotation(42)
    public static void method() {
    }
}
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface MyAnnotation {
    int value() default 1;
}

它打印

42
1

相关内容

  • 没有找到相关文章

最新更新