原始布尔值的 javax.validation.constraints?

Pat*_*Pat 1 java boolean

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

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

请如何验证原始布尔值的相同内容?意思是,我有一个布尔值,我想成为一个必须在JSON请求输入。

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

我希望客户必须输入此字段。并且该字段的值必须为真或假。

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

这是一个有效的例子

{
    "field": false
}

Run Code Online (Sandbox Code Playgroud)

此处,该字段中存在拼写错误,因此该字段不存在,无效。

{
    "fielddwdw": false
}
Run Code Online (Sandbox Code Playgroud)

此处,该字段的值为“true”,即字符串,因此无效。

{
    "field": "true"
}
Run Code Online (Sandbox Code Playgroud)

这里的值不是真也不是假,无效

{
    "field": foo
}

Run Code Online (Sandbox Code Playgroud)

我希望有某种

    @MagicalBooleanValidationAnnoation
    private boolean field;
Run Code Online (Sandbox Code Playgroud)

但只是想实现这个用例。

谢谢

And*_*eas 5

您不能对原语执行Boolean与 with@NotNull注释相同的操作,因为原语只有 2 个可能的值,并且没有一个表示缺少值。 boolean boolean

如果你想有一个三态值,与各国truefalse以及missing,你必须使用Boolean

或者您可以使用enum3 个值。