刚刚遇到一个错误,问题是我遇到的问题:
@Column(name = "ACTIVE")
@NotNull
private boolean active;
在我的代码中,我忘记了设置值,但它仍然“有效”,因为 boolean 值的默认值为 false。我现在将其更改为 Boolean
,以便在未主动设置时验证失败。
为什么我可以对显然不能为 null
的事物使用 @NotNull
约束?是不是重构的原因,所以如果我像现在一样更改为 boolean 值,我仍然保留预期的约束?
是否有任何好的想法可以解决这些问题(除了为此目的进行的更多测试)?还是我应该避免使用原语?
最佳答案
As javadoc says The annotated element must not be null. Accepts any type.
可以是任何类型,它只是检查变量是否为not null
,与是否接受null
无关。
如前所述,它适用于 METHOD,FIELD,ANNOTATION_TYPE,CONSTRUCTOR,PARAMETER
。
@Target(value={METHOD,FIELD,ANNOTATION_TYPE,CONSTRUCTOR,PARAMETER})
关于java - @NotNull 原语约束,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40172563/