本文只是简单的介绍Java中使用Preconditions来检查传入参介绍,需要的朋友可以参考
添加依赖:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
Preconditions是Guava中的一个类库,用于检查传入参数,一个常见用法如下:
Preconditions.checkArgument(!ObjectUtils.isEmpty(queryAccountRequest), "入参缺失");
当判断参数为空时,抛出异常
public static void checkArgument(boolean expression, @Nullable Object errorMessage) {
if(!expression) {
throw new IllegalArgumentException(String.valueOf(errorMessage));
}
}
补充:
翻开Preconditions的源码,我们看到,guava进行了大量方法的重载,组成了Preconditions工具类,下面我们先简单的了解一下,所有的14个静态方法,如下:
1.checkArgument(boolean expression):用来校验表达式是否为真,一般用作方法中校验参数
2.checkArgument(boolean expression, @Nullable Object errorMessage):校验表达式是否为真,不为真时显示指定的错误信息。
3.checkArgument(boolean expression, @Nullable String errorMessageTemplate, @Nullable Object... errorMessageArgs):校验表达式是否为真,不为真时显示错误信息,错误信息中允许使用占位符。
4.checkState(boolean expression):校验表达式是否为真,一般用作校验方法返回是否为真。
5.checkState(boolean expression, @Nullable Object errorMessage):当表达式为假的时候,显示指定的错误信息。
6.checkState(boolean expression,@Nullable String errorMessageTemplate,@Nullable Object... errorMessageArgs):允许在错误信息中使用占位符。
7.checkNotNull(T reference):校验对象是否为空。
8.checkNotNull(T reference, @Nullable Object errorMessage):对象为空时显示指定的错误信息。
9.checkNotNull(T reference, @Nullable String errorMessageTemplate,@Nullable Object... errorMessageArgs):允许在错误信息中使用占位符。
10.checkElementIndex( int index, int size, @Nullable String desc):校验元素的索引值是否有效,index大于等于0小于size,在无效时显示错误描述信息。
11.checkElementIndex(int index, int size):错误描述信息为“index”
12.checkPositionIndex(int index, int size, @Nullable String desc):校验元素的索引值是否有效,index大于等于0小于等于size,在无效时显示错误描述信息。
13.checkPositionIndex(int index, int size):错误描述信息为“index”
14.checkPositionIndexes(int start, int end, int size):校验大于等于start,小于end的list的长度是否为size。