Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.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 在批注中包含计算的“static final”属性_Java - Fatal编程技术网

Java 在批注中包含计算的“static final”属性

Java 在批注中包含计算的“static final”属性,java,Java,这很有效 @JsonRootName(Bay.PLURAL_FORM) public class Bay { public static final String PLURAL_FORM = "bays"; 这不会显示Eclipse中的错误:注释属性JsonRootName.value的值必须是常量表达式: @JsonRootName(Bay.PLURAL_FORM) public class Bay { public static final String PLURAL_

这很有效

@JsonRootName(Bay.PLURAL_FORM)
public class Bay {

    public static final String PLURAL_FORM = "bays";
这不会显示Eclipse中的错误:注释属性JsonRootName.value的值必须是常量表达式:

@JsonRootName(Bay.PLURAL_FORM)
public class Bay {

    public static final String PLURAL_FORM =
            English.plural(CaseFormat.UPPER_CAMEL.to(
                CaseFormat.LOWER_CAMEL, Bay.class.getSimpleName()));

有没有办法在注释中包含计算的静态最终值?

没有。注释属性值必须是常量表达式。不完全是这样,接受的实际值取决于注释方法的返回类型。一切都描述过了


但是,您可以给它一个键,一个字符串值、枚举值或可以引用运行时检索的值的类对象。这就是获得动态值的方法。

该值必须是编译器可以计算为常量的值。在第二个示例中,直到运行时才知道该值。因此,在本例中,我无法执行任何操作,因为@JsonRootName不是由我正确编写的。@jax right。如果您不是处理它的人,那么您几乎无法从动态值中获得所需的行为。