注释属性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;

是在编译时确定的,所以允许这样做,因为注释中的值应该在编译时解析,而不是在运行时解析。

相关内容

最新更新