簡體   English   中英

是否可以強制使用 Java 注釋的值?

[英]Is it possible to make a Java annotation's value mandatory?

Java 允許在注解中定義值,例如:

public @interface MyAnnotation {
    int MyValue();
}

雖然可以為MyValue注釋設置默認值,但我想知道是否可以強制設置。 我的意思是強制用戶在注釋 class 或字段時為MyValue提供一個值。

我瀏覽了文檔,但找不到任何東西。 有沒有人可以解決這個問題,或者不可能強制注釋的值?

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

注釋 MyAnnotation 缺少 MyValue

給定

public @interface MyAnnotation {
    int MyValue();
}

一個 class

@MyAnnotation
public class MyClass {

}

將是沒有值的編譯錯誤。

我還沒有嘗試過,但是如果您想將值強制為特定值,則可能使該類型成為枚舉。

public @interface MyAnnotation {
    Status status();
}

其中 Status 是一個枚舉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM