如何在 Spring boot 中验证类型 'java.lang.Boolean'

新手上路,请多包涵

我有一个布尔字段,我想验证它是否只有“true”或“false”作为值(不带引号)。但是这个字段也允许“真”或“假”作为我想要限制的值(带引号)。

我尝试使用 @Pattern 注释来匹配这些值。但我有以下错误:

javax.validation.UnexpectedTypeException: HV000030: 找不到约束 ‘javax.validation.constraints.Pattern’ 验证类型 ‘java.lang.Boolean’ 的验证器。检查“可重新启动”的配置

我的代码是:

 @Pattern(regexp = "^(true|false)$", message = "restartable field allowed input: true or false")
private Boolean restartable;

我应该怎么办?还有其他方法可以解决这个问题吗?提前致谢。

原文由 Nobita 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 885
1 个回答

您可以使用 @NotNull@AssertTrue@AssertFalse 中的断言如果目标值是强制执行。

https://docs.oracle.com/javaee/7/tutorial/bean-validation001.htm

 @NotNull
@AssertTrue
private Boolean restartable;

如果值可以为 true 或 false,则 Not Null 注释就足够了,因为 Java 中的布尔值只能有两个值。

原文由 Technoshaft 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题