javax.validation.constraints 对于原始布尔值?

javax.validation.constraints for primitive boolean?

关于 javax.validation.constraints 的小问题以及如何验证 原语 布尔值(不是布尔值)

目前,我正在使用@Min(1)、@Size(min = 1, max = 10)、@NotBlank 等来验证我的原始 int 和 String 对象。做的很好,很开心

请问如何对原始布尔值进行相同的验证? 意思是,我有一个布尔值,我想在 JSON 请求中作为 必须 输入。

我知道如果我做布尔值,我可以将它与某种@NotNull 验证结合起来。请问如何用原始布尔值做同样的事情?

我希望客户必须输入这个字段。并且该字段的值必须为 true 或 false。

如果该字段不存在,我不想将其默认为 false 或 true。

这是一个有效的例子

{
    "field": false
}

此处,字段中有错字,因此,字段字段不存在,无效。

{
    "fielddwdw": false
}

这里,字段的值为“true”,字符串,因此无效。

{
    "field": "true"
}

这里的值非真非假,无效

{
    "field": foo
}

我希望得到某种

    @MagicalBooleanValidationAnnoation
    private boolean field;

不过就是想实现这个用例。

谢谢

您不能对 原始 boolean 使用 @NotNull 注释执行与 Boolean 相同的操作,因为 primitive boolean只有2个可能值,其中none代表缺少一个值

如果您想要一个具有状态 truefalsemissing 的三态值,您必须使用 Boolean

或者您可以使用具有 3 个值的 enum