对于 Java 程序员来说,接口的参数校验一般是通过 @NotNull 、 @NotBlank 、 @Size(min = 0, max = 255) 等这些注解来校验的。
但是有一些情况下,这些注解无法满足校验的需求,比如下面这段代码:
public class Test { /** * 状态,值必须为枚举类 Status 中的 code */ Integer status; /** * 是否开启语音提示 */ Boolean enableVoice; /** * 语音提示内容 */ String voiceContent; } 这里涉及到两种参数校验是现有的注解无法满足的:
- 状态的 Int 值必须存在于枚举类中
- 当开启语音提示时,内容必须不为空,本质上是上下文关联的参数校验
这里我只是进行举例,我主要是想收集一下大家遇到的类型情况,然后我想做一个组件,能够尽可能的解决这些问题。
其实我已经有一个这样的组件了,但是担心自己考虑到的情况还不太够,所以想收集一下大家的建议,之后完善一下然后开源出来给大家使用。
