![](/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.