2011-08-15 27 views
29

Java允許在標註值的定義,例如:是否可以使Java註釋的值爲必需的?

public @interface MyAnnotation { 
    int MyValue(); 
} 

儘管可以設置爲MyValue標註的默認值,我想知道是否有可能使它強制性的。我的意思是強制用戶在註釋類或字段時爲MyValue提供值。

我經歷了文檔,但找不到任何東西。有沒有人有這個問題的解決方案,或僅僅是不可能使註解的值是強制性的?

回答

53

如果您不指定默認值,則它是強制性的。對於使用您的註釋,而無需使用MyValue屬性的示例生成此編譯器錯誤:

annotation MyAnnotation is missing MyValue

+1

我怎麼錯過了,謝謝! – JVerstry

4

鑑於

public @interface MyAnnotation { 
    int MyValue(); 
} 

@MyAnnotation 
public class MyClass { 

} 

將是同出一值編譯錯誤。

1

我還沒有嘗試過,但如果你想強制值的特定值可能使該類型爲枚舉。

public @interface MyAnnotation { 
    Status status(); 
} 

Where Status是一個枚舉。

相關問題