如何通过常量java为注释提供值-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

如何通过常量java为注释提供值

保持可爱mmm 2020-02-07 01:05:13 57

我认为这在Java中可能无法实现,因为注释及其参数在编译时已解决。我有一个如下的界面,

public interface FieldValues { String[] FIELD1 = new String[]{"value1", "value2"}; } 和另一类,

@SomeAnnotation(locations = {"value1", "value2"}) public class MyClass { .... } 我用注解标记了许多类,我想知道是否可以避免在每个注解中指定字符串,而宁愿使用

@SomeAnnotation(locations = FieldValues.FIELD1) public class MyClass { .... } 但是,这会产生诸如注释值之类的编译错误,应该将其作为数组初始化程序等。有人知道我如何使用String常量或String []常量为注释提供值吗? 问题来源于stack overflow

Java
分享到
取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2020-02-07 01:05:26

    编译常量只能是原语和字符串:

    15.28。常数表达式

    编译时常量表达式是表示原始类型或String的值的表达式,该值不会突然完成,并且仅使用以下内容组成:

    基本类型的文字和类型的文字 String 强制转换为基本类型并强制转换为类型 String [...]运营商[...] 用括号括起来的表达式,其包含的表达式是一个常量表达式。 引用常量变量的简单名称。 表格的限定名类型名。引用常量变量的标识符。 实际上,在Java中,无法保护数组中的项。在运行时,任何人都可以做FieldValues.FIELD1[0]="value3",因此,如果我们更深入地研究数组,则数组不能真正恒定。

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程