刚遇到一个错误,我遇到的问题是:
@Column(name = "ACTIVE")
@NotNull
private boolean active;
在我的代码中,我忘了设置值,但它仍然“工作”#34;因为boolean的默认值为false。我现在已经将其更改为Boolean
,因此如果没有主动设置,它将无法通过验证。
为什么我允许@NotNull
限制显然不是null
的内容?是重构的原因,所以如果我现在改变为布尔值,我仍然保持预期的约束?
有没有好的想法可以解决这些问题(除了这个目的的更多测试)?或者我应该远离使用原语?
答案 0 :(得分:2)
正如javadoc所说带注释的元素不能为空。接受任何类型。
它可以是任何类型,它只是检查变量是否为not null
,它与是否接受null
无关。
如前所述,它适用于METHOD,FIELD,ANNOTATION_TYPE,CONSTRUCTOR,PARAMETER
。
@Target(value={METHOD,FIELD,ANNOTATION_TYPE,CONSTRUCTOR,PARAMETER})