实际开发中需要做入参校验的情况比比皆是,比如开发一个rest接口,肯定要对参数各种校验,防止错误的输入导致程序出错。我们可以使用Preconditions(前置条件),这样我们自己代码中就不会出现大段的if代码了。
// bad practice
public static void insert(String name, int age) {
if (name == null || name.equals("")) {
throw new IllegalArgumentException("name should not be empty.");
}
if (age <= 0) {
throw new IllegalArgumentException("age should not be negative.");
}
}
如果入参很多,或者校验逻辑很复杂,这个函数中if会越来越多,圈复杂度越来越高。
// best practice
public static void insert(String name, int age) {
Preconditions.checkNotNull(name);
Preconditions.checkArgument(!name.equals(""));
Preconditions.checkArgument(age >= 0);
}
使用Preconditions就可以消除代码中的if了。