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常量视为常量,如果它是用一个已计算的表达式而不是普通数字声明的?
答案 0 :(得分:9)
表达式
private static final int MIN_YEAR = Calendar.getInstance().get(Calendar.YEAR) - 1;
仅在运行时确定,但
private static final int MIN_YEAR = 2013;
是在编译时确定的,所以它是允许的,因为注释中的值应该在编译时而不是运行时解析。