2016-11-01 57 views
-1

這樣我怎麼能知道被註釋與另一

@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 ""; 
} 

我怎樣才能konw配置被標註成分的標註?
@Interface和界面Annotation之間的關係是什麼。
我有一個對象註釋@Configuration,obj.getClass().getAnnotation(Configuration.class).getClass()==Configu‌​ration.class這是假

回答

1

檢查註釋是否存在是相當容易的,任何ClassisAnnotationPresent(clazz) - 方法讓您檢查特定類型的註釋是否存在。

只有在保留策略爲「RUNTIME」時才能檢查註釋是否存在,否則註釋會被編譯器或JVM剝離。

我創建了一個小樣本您:http://ideone.com/CrXGVc

+0

但如果我有註解'@ Component'類,'class.getAnnotation(Configuration.class).getClass()== Configuration.class'它假。所以'clazz.getAnnotations()','annotation.getClass()。isAnnotationPresent(Configuration.class)'不工作 – twogoods

相關問題