收集 Java 程序员在处理接口的参数校验时觉得麻烦的例子,收集无法使用 @NotNull 等注解来校验参数的例子

12次阅读

共计 413 个字符,预计需要花费 2 分钟才能阅读完成。

对于 Java 程序员来说,接口的参数校验一般是通过 @NotNull、@NotBlank、@Size(min = 0, max = 255) 等这些注解来校验的。

但是有一些情况下,这些注解无法满足校验的需求,比如下面这段代码:

public class Test {

	/**
	 * 状态,值必须为枚举类 Status 中的 code
	 */
	Integer status;

	/**
	 * 是否开启语音提示
	 */
	Boolean enableVoice;

	/**
	 * 语音提示内容
	 */
	String voiceContent;

}

这里涉及到两种参数校验是现有的注解无法满足的:

  1. 状态的 Int 值必须存在于枚举类中
  2. 当开启语音提示时,内容必须不为空,本质上是上下文关联的参数校验

这里我只是进行举例,我主要是想收集一下大家遇到的类型情况,然后我想做一个组件,能够尽可能的解决这些问题。

其实我已经有一个这样的组件了,但是担心自己考虑到的情况还不太够,所以想收集一下大家的建议,之后完善一下然后开源出来给大家使用。

正文完
 0