如何通过常量java为注释提供值
我认为这在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 []常量为注释提供值吗?
回答:
15.28。常数表达式
编译时常量表达式是表示原始类型或String的值的表达式,该值不会突然完成,并且仅使用以下内容组成:
- 基本类型的文字和类型的文字 String
- 强制转换为基本类型并强制转换为类型 String
- […]运营商[…]
- 用括号括起来的表达式,其包含的表达式是一个常量表达式。
- 引用常量变量的简单名称。
- 表格的限定名类型名。引用常量变量的标识符。
实际上,在Java中,无法保护数组中的项。在运行时,任何人都可以做FieldValues.FIELD1[0]="value3"
,因此,如果我们更深入地研究数组,则数组不能真正恒定。
以上是 如何通过常量java为注释提供值 的全部内容, 来源链接: utcz.com/qa/431440.html