繁体   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