![](/img/trans.png)
[英]Is there a way to make a specific Java annotation mandatory in subclasses of a specific class
[英]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.