简介
Preconditions是guava提供的用于进行代码校验的工具类,其中提供了许多重要的静态校验方法,可以帮助我们快速定位报错,友好的提示。
依赖导入
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
Preconditions方法:
1 .checkArgument(boolean) :
功能描述:检查boolean是否为真。 用作方法中检查参数
失败时抛出的异常类型: IllegalArgumentException
2.checkNotNull(T):
功能描述:检查value不为null, 直接返回value;
失败时抛出的异常类型:NullPointerException
3.checkState(boolean):
功能描述:检查对象的一些状态,不依赖方法参数。 例如, Iterator可以用来next是否在remove之前被调用。
失败时抛出的异常类型:IllegalStateException
4.checkElementIndex(int index, int size):
功能描述:检查index是否为在一个长度为size的list, string或array合法的范围。 index的范围区间是[0, size)(包含0不包含size)。无需直接传入list, string或array, 只需传入大小。返回index。
失败时抛出的异常类型:IndexOutOfBoundsException
5.checkPositionIndex(int index, int size):
功能描述:检查位置index是否为在一个长度为size的list, string或array合法的范围。 index的范围区间是[0, size)(包含0不包含size)。无需直接传入list, string或array, 只需传入大小。返回index。
失败时抛出的异常类型:IndexOutOfBoundsException
6.checkPositionIndexes(int start, int end, int size):
功能描述:检查[start, end)是一个长度为size的list, string或array合法的范围子集。伴随着错误信息。
失败时抛出的异常类型:IndexOutOfBoundsException
方法案例
@PostMapping("/add")
public Result add(@RequestBody SubjectCategoryDto subjectCategoryDto) {
try {
//断言(判断数据不为空)
Preconditions.checkNotNull(subjectCategoryDto.getCategoryName(), "分类名称不能为空");
Preconditions.checkArgument(!StringUtils.isBlank(subjectCategoryDto.getImageUrl()), "图片链接不能为空");
Preconditions.checkNotNull(subjectCategoryDto.getParentId(), "父级id不能为空");
Preconditions.checkNotNull(subjectCategoryDto.getCategoryType(), "分类类型不能为空");
} catch (Exception e) {
e.printStackTrace();
}
}
日志提示
感谢小伙伴的观看,希望对你有帮助!