我有一个布尔字段,我想验证它是否只有“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 许可协议
您可以使用
@NotNull
和@AssertTrue
或@AssertFalse
中的断言如果目标值是强制执行。https://docs.oracle.com/javaee/7/tutorial/bean-validation001.htm
如果值可以为 true 或 false,则 Not Null 注释就足够了,因为 Java 中的布尔值只能有两个值。