代码之家  ›  专栏  ›  技术社区  ›  PatPanda

javax.validation.原始布尔值的约束?

  •  -1
  • PatPanda  · 技术社区  · 4 年前

    关于javax.validation.contraints的小问题以及如何验证 原始的 boolean(非布尔值)

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

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

    我明白,如果我做布尔运算,我可以把它和某种@NotNull验证结合起来。请问如何处理原始布尔值?

    我希望客户必须输入此字段。字段的值必须为true或false。

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

    这是一个有效的例子

    {
        "field": false
    }
    
    

    这里,字段中有一个拼写错误,因此,字段字段不存在,它无效。

    {
        "fielddwdw": false
    }
    

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

    {
        "field": "true"
    }
    

    这里的值既不是true也不是false,无效

    {
        "field": foo
    }
    
    

    我希望有某种

        @MagicalBooleanValidationAnnoation
        private boolean field;
    

    但我只是想实现这个用例。

    非常感谢。

    1 回复  |  直到 4 年前
        1
  •  6
  •   Andreas dfa    4 年前

    你不能做同样的事 Boolean 具有 @NotNull 注释a 原始的 boolean ,因为 原始的 布尔值 只有2个可能的值,它们都不表示缺少值。

    如果你想要一个3状态值,带状态 true , false ,以及 missing ,您必须使用 布尔值 .

    或者你可以使用 enum 具有3个值。