注释属性Min.value的值必须是一个常量表达式

Eclipse不断给我错误:

The value for annotation attribute Min.value must be a constant expression

但是我绝对可以给注解一个常量。

private static final int MIN_YEAR = Calendar.getInstance().get(Calendar.YEAR) - 1;

@Min(MIN_YEAR)

如果我将其更改为

private static final int MIN_YEAR = 2013;

很高兴,但我不必这样做。有谁知道为什么我的MIN_YEAR常量使用评估表达式而不是纯数字声明时不被视为常量?

回答:

表达方式

private static final int MIN_YEAR = Calendar.getInstance().get(Calendar.YEAR) - 1;

将仅在运行时确定,但是

private static final int MIN_YEAR = 2013;

是在编译时确定的,因此允许使用,因为注释中的值应在编译时而不是运行时解析。

以上是 注释属性Min.value的值必须是一个常量表达式 的全部内容, 来源链接: utcz.com/qa/426341.html

回到顶部