java 在Sping Boot 中验证枚举值

cigdeys3  于 2023-06-04  发布在  Java
关注(0)|答案(2)|浏览(189)

我正在构建一个restapi,请求体中的一个参数被Map到一个枚举。

public class CarDto{
   
  private Level level;

}

其中level是:

public enum Level {
NEW,OLD
}

如何验证请求中的用户输入的枚举值是否正确?
例如,对于非空字段,我找到了@NotBlank(message = "Name is mandatory"),但我无法找到上述情况的解决方案。

63lcw9qa

63lcw9qa1#

hibernate validator依赖项添加到项目中,并使用@EnumFormat注解Level字段。

@EnumFormat(message = "Invalid level")
private Level level;
vc9ivgsu

vc9ivgsu2#

枚举是命名对象的集合,而不是文本。
所以你的成员字段private Level level;永远不能为空。该成员字段将仅包含以下三个值之一:

  • 对自动示例化的对象Level.NEW的引用
  • 对自动示例化的对象Level.OLD的引用
  • null(没有任何引用)

相关问题