我怎么知道用另一个注释的注释

时间:2016-11-01 14:10:48

标签: java annotations

像这样

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Component {
    String value() default "";
}

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Configuration {
   String value() default "";
}

我如何知道配置是带注释的组件?
以及@Interface和界面Annotation之间的关系是什么 我有一个对象注释@Configuration,obj.getClass().getAnnotation(Configuration.class).getClass()==Configu‌​ration.class它是假的

1 个答案:

答案 0 :(得分:1)

检查是否存在注释相当容易,任何Class都有isAnnotationPresent(clazz) - 方法,允许您检查是否存在特定类型的注释。

只有当注释具有保留策略' RUNTIME'时才能检查是否存在注释,否则注释将被编译器或JVM剥离。

我为您创建了一个小样本:http://ideone.com/CrXGVc