Java允许在注释中定义值,例如:
public @interface MyAnnotation {
int MyValue();
}
虽然可以为MyValue
注释设置默认值,但我想知道是否可以强制使用它。我的意思是强制用户在注释类或字段时为MyValue
提供值。
我浏览了文档但找不到任何内容。有没有人能解决这个问题,或者只是不可能强制要求注释的值?
答案 0 :(得分:63)
如果您未指定默认值,则必须使用此值。对于使用注释而不使用MyValue
属性的示例,会生成此编译器错误:
注释MyAnnotation缺少MyValue
答案 1 :(得分:4)
给出
public @interface MyAnnotation {
int MyValue();
}
一个班级
@MyAnnotation
public class MyClass {
}
将是一个没有值的编译错误。
答案 2 :(得分:1)
我没有尝试过这个,但是如果你想强制将值强制为一个特定的值,可能会使类型成为枚举。
public @interface MyAnnotation {
Status status();
}
Status是枚举。