Java 中使用枚举参数,如何进行 JSR303 校验意外值?
如题,使用枚举直接接收参数,使用 json 反序列化,对于意外值会接收成 null ,如此实际的参数已经丢失了,只能判断是否为 null 。
enum Sex { MALE(1), FEMALE(0) } 像这样的枚举值,如果参数为 2 、3 或其他任意值,在不进行自定义序列化时,接收会报错,但是自定义序列化后,只有 null 以及合法枚举。
预期的目标,使用参数校验,提示“性别可选值 [ 1 ,0 ] ”。
使用原始类型接收,可以实现,但如何直接使用枚举类型实现。
现在测试结果,可以在运行时动态添加一个 UNKNOWN 类型的枚举值,用于映射非预期值。
但感觉太重了。
或者换个问题,参数使用原始值,还是枚举值较好
