问题:
在Java中,是否可以使用字符串初始化注解参数常量还是数组常量?注释参数在编译时进行评估,这可能会阻止此功能。
所需语法的示例是:
@SomeAnnotation(locations = FieldValues.FIELD1) public class MyClass { .... }
其中 FieldValues 是带有常量数组 FIELD1 的接口。
答案:
根据 Java 语言规范15.28,编译时常量只能是原语和字符串。这意味着不可能使用数组常量来初始化注释参数。
说明:
注释在编译时评估,并且它们保存的值到时候应该就知道了。数组不是编译时常量,因为它们的元素可以在运行时修改。因此,不可能使用数组常量作为注释参数。
可能的解决方案:
注意:
即使数组被定义为final,它仍然不是一个编译时常量,并且它的元素可以被反射地修改.
以上是Java中的注解参数可以用字符串或数组常量初始化吗?的详细内容。更多信息请关注PHP中文网其他相关文章!