Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以制作Java注释';s值是强制性的吗?_Java_Annotations - Fatal编程技术网

是否可以制作Java注释';s值是强制性的吗?

是否可以制作Java注释';s值是强制性的吗?,java,annotations,Java,Annotations,Java允许在注释中定义值,例如: public @interface MyAnnotation { int MyValue(); } 虽然可以为MyValue注释设置默认值,但我想知道是否可以将其设置为强制值。我的意思是,在注释类或字段时,强制用户为MyValue提供一个值 我查阅了文件,但什么也没找到。是否有人对此问题有解决方案,或者不可能将批注的值设为强制值?如果未指定默认值,则为强制值。例如,在不使用MyValue属性的情况下使用注释会生成以下编译器错误: 批注MyAnnota

Java允许在注释中定义值,例如:

public @interface MyAnnotation {
    int MyValue();
}
虽然可以为
MyValue
注释设置默认值,但我想知道是否可以将其设置为强制值。我的意思是,在注释类或字段时,强制用户为
MyValue
提供一个值


我查阅了文件,但什么也没找到。是否有人对此问题有解决方案,或者不可能将批注的值设为强制值?

如果未指定默认值,则为强制值。例如,在不使用
MyValue
属性的情况下使用注释会生成以下编译器错误:

批注MyAnnotation缺少MyValue

给定

班级

@MyAnnotation
public class MyClass {

}

将是一个没有值的编译错误。

我没有尝试过这个方法,但是如果您想强制将值设置为特定值,可能会将类型设置为枚举

public @interface MyAnnotation {
    Status status();
}
其中Status是一个枚举

public @interface MyAnnotation {
    Status status();
}