我有一个java元注释
@Retention(value = RetentionPolicy.RUNTIME)
@Target(value = { ElementType.ANNOTATION_TYPE })
public @interface Qualifier {
}
然后我有另一个注释:
@Qualifier
@Retention(value = RetentionPolicy.RUNTIME)
@Target(value = { ElementType.TYPE })
public @interface LeafEntity {
String name() default "";
}
在运行时,我可以使用
提取LeafEntity注释getClass().getAnnotation(LeafEntity.class);
但是,我想知道是否可以访问有关限定符的任何内容?我的意思是如果您无法访问有关它们的任何内容,注释的注释目的是什么?
我尝试了以下所有方法:
getClass().getAnnotation(Qualifier.class);
getClass().getAnnotation(LeafEntity.class).getClass().getAnnotation(Qualifier.class);
getClass().getAnnotation(LeafEntity.class) instanceof Qualifier.class;
如果有人知道如何访问限定符注释,我会很感激一个例子..
这个重要的原因是我有一个名为Qualifier的基本注释。我想允许我的用户定义他们喜欢的任何注释,只需将Qualifier注释应用于它。然后我将扫描该类以查找由限定符注释注释的任何注释。但如果我无法访问或识别限定符注释,那是不可能的。
先谢谢。
答案 0 :(得分:5)
你有没有尝试过:
getClass().getAnnotation(LeafEntity.class).annotationType().getAnnotation(Qualifier.class);
答案 1 :(得分:1)
难道你不能给Qualifier一个默认值吗?通过这种方式,您将能够提取它。
public @interface Qualifier {
boolean value default true;
}