0%

java | com.google.common.base.Preconditions

Google Guava中提供了一个Preconditions类,用于校验入参的正确性。


源码


这只是其中一个方法,可以查看其他信息。

1
2
3
4
5
public static void checkState(boolean expression, @Nullable Object errorMessage) {
if (!expression) {
throw new IllegalStateException(String.valueOf(errorMessage));
}
}

检查参数(expression)是否合法,若为 false ,抛出IllegalArgumentException异常

  • 检查入参状态的checkState()方法,参数为false将抛出IllegalStateException异常;
  • 检查入参是否为空的checkNotNull()方法,参数为null将抛出NullPointException异常;
  • 检查数组索引是否越界,越界将抛出IndexOutOfBoundsException异常,用法与checkArgument类似,检查数组是否越界稍微有点不同
  • 其他的可以查看源码

用法


案例一

1
2
3
4
5
6
7
8
import com.google.common.base.Preconditions;

public class PreconditionsDemo {
public static void main(String args[]) {
boolean demo=5<0;
Preconditions.checkArgument(demo,"demo不能为false");
}
}

输出

1
2
3
Exception in thread "main" java.lang.IllegalArgumentException: demo不能为false
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:122)
at demo.PreconditionsDemo.main(PreconditionsDemo.java:8)

案例二

1
2
3
4
5
6
7
8
import com.google.common.base.Preconditions;

public class PreconditionsDemo {
public static void main(String args[]) {
boolean demo=5<0;
Preconditions.checkArgument(demo,"该参数为%s",demo);
}
}

输出

1
2
3
Exception in thread "main" java.lang.IllegalArgumentException: 该参数为false
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:191)
at demo.PreconditionsDemo.main(PreconditionsDemo.java:8)

案例三

1
2
3
4
5
6
7
8
import com.google.common.base.Preconditions;

public class PreconditionsDemo {
public static void main(String args[]) {
boolean demo=5<0;
Preconditions.checkArgument(demo,"%s为%s","demo",demo);
}
}

输出

1
2
3
Exception in thread "main" java.lang.IllegalArgumentException: demo为false
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:383)
at demo.PreconditionsDemo.main(PreconditionsDemo.java:8)
请我喝杯咖啡吧~