Guava 简明教程
Guava - Preconditions Class
Precondition 提供静态方法来检查方法或构造函数是否使用正确的参数调用。它检查前提条件。其方法在失败时抛出 IllegalArgumentException。
Class Declaration
以下是 com.google.common.base.Preconditions 类的声明:
@GwtCompatible
public final class Preconditions
extends Object
Class Methods
Sr.No |
Method & Description |
1 |
static void checkArgument(boolean expression) 确保一个或多个参数对调用方法的表达式的真实性。 |
2 |
static void checkArgument(boolean expression, Object errorMessage) 确保一个或多个参数对调用方法的表达式的真实性。 |
3 |
static void checkArgument(boolean expression, String errorMessageTemplate, Object. errorMessageArgs) 确保涉及调用方法的一个或多个参数的表达式的真实性。 |
4 |
static int checkElementIndex(int index, int size) 确保 index 指定数组、列表或大小字符串中的有效元素。 |
5 |
static int checkElementIndex(int index, int size, String desc) 确保 index 指定数组、列表或大小字符串中的有效元素。 |
6 |
static <T> T checkNotNull(T reference) 确保作为参数传递给调用方法的对象引用不为 null。 |
7 |
static <T> T checkNotNull(T reference, Object errorMessage) 确保作为参数传递给调用方法的对象引用不为 null。 |
8 |
static <T> T checkNotNull(T reference, String errorMessageTemplate, Object…​ errorMessageArgs) 确保作为参数传递给调用方法的对象引用不为 null。 |
9 |
static int checkPositionIndex(int index, int size) 确保 index 指定数组、列表或大小字符串中的有效位置。 |
10 |
static int checkPositionIndex(int index, int size, String desc) 确保 index 指定数组、列表或大小字符串中的有效位置。 |
11 |
static void checkPositionIndexes(int start, int end, int size) 确保 start 和 end 指定数组、列表或大小字符串中的有效位置,并且按顺序排列。 |
12 |
static void checkState(boolean expression) 确保涉及调用实例状态但没有涉及调用方法的任何参数的表达式的真实性。 |
13 |
static void checkState(boolean expression, Object errorMessage) 确保涉及调用实例状态但没有涉及调用方法的任何参数的表达式的真实性。 |
14 |
static void checkState(boolean expression, String errorMessageTemplate, Object…​ errorMessageArgs) 确保涉及调用实例状态但没有涉及调用方法的任何参数的表达式的真实性。 |
Example of Preconditions Class
使用任意你选择的编辑器在 C:/> Guava. 中创建以下 Java 程序
GuavaTester.java
import com.google.common.base.Preconditions;
public class GuavaTester {
public static void main(String args[]) {
GuavaTester guavaTester = new GuavaTester();
try {
System.out.println(guavaTester.sqrt(-3.0));
} catch(IllegalArgumentException e) {
System.out.println(e.getMessage());
}
try {
System.out.println(guavaTester.sum(null,3));
} catch(NullPointerException e) {
System.out.println(e.getMessage());
}
try {
System.out.println(guavaTester.getValue(6));
} catch(IndexOutOfBoundsException e) {
System.out.println(e.getMessage());
}
}
public double sqrt(double input) throws IllegalArgumentException {
Preconditions.checkArgument(input > 0.0,
"Illegal Argument passed: Negative value %s.", input);
return Math.sqrt(input);
}
public int sum(Integer a, Integer b) {
a = Preconditions.checkNotNull(a, "Illegal Argument passed: First parameter is Null.");
b = Preconditions.checkNotNull(b, "Illegal Argument passed: Second parameter is Null.");
return a+b;
}
public int getValue(int input) {
int[] data = {1,2,3,4,5};
Preconditions.checkElementIndex(input,data.length, "Illegal Argument passed: Invalid index.");
return 0;
}
}