2011-02-15 120 views
4

在用戶定義的註釋中,兩個元註釋(目標和保留)的確切默認值是什麼?Java註釋的默認屬性

public @interface AnnotationWithDefaultProps { 
} 

回答

6

根據源代碼,它們都沒有默認值,這意味着您必須提供它,無論何時使用註釋。缺少註釋的含義在Javadoc定義:

對於Target這意味着

如果目標元註釋上不存在註釋類型聲明,聲明的類型可以在任何程序中使用元件。

Retention它意味着

如果沒有保留註釋存在於註釋類型聲明,保留策略默認爲RetentionPolicy.CLASS。

2

嚴格地說,沒有未指定註釋的默認值。註釋根本就不在那裏。

但對於這兩個特別

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/annotation/Retention.html

如果沒有保留註釋存在於註釋類型聲明,保留策略默認爲RetentionPolicy.CLASS。

和等效爲目標,

如果目標元註釋上不存在註釋類型聲明,聲明的類型可以任何程序元件上使用。