- Guava 教程
- Guava - 首頁
- Guava - 概述
- Guava - 環境設定
- Guava - Optional 類
- Guava - 前置條件類
- Guava - Ordering 類
- Guava - Objects 類
- Guava - Range 類
- Guava - Throwables 類
- Guava - 集合工具類
- Guava - 快取工具類
- Guava - 字串工具類
- Guava - 原語工具類
- Guava - 數學工具類
- Guava 有用資源
- Guava - 快速指南
- Guava - 有用資源
- Guava - 討論
Guava - 前置條件類
Preconditions 提供靜態方法來檢查方法或建構函式是否使用正確的引數呼叫。它檢查前提條件。其方法在失敗時丟擲 IllegalArgumentException。
類宣告
以下是com.google.common.base.Preconditions類的宣告:
@GwtCompatible public final class Preconditions extends Object
類方法
| 序號 | 方法及描述 |
|---|---|
| 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) 確保索引指定大小為size的陣列、列表或字串中的有效元素。 |
| 5 | static int checkElementIndex(int index, int size, String desc) 確保索引指定大小為size的陣列、列表或字串中的有效元素。 |
| 6 | static <T> T checkNotNull(T reference) 確保作為引數傳遞給呼叫方法的物件引用不為空。 |
| 7 | static <T> T checkNotNull(T reference, Object errorMessage) 確保作為引數傳遞給呼叫方法的物件引用不為空。 |
| 8 | static <T> T checkNotNull(T reference, String errorMessageTemplate, Object... errorMessageArgs) 確保作為引數傳遞給呼叫方法的物件引用不為空。 |
| 9 | static int checkPositionIndex(int index, int size) 確保索引指定大小為size的陣列、列表或字串中的有效位置。 |
| 10 | static int checkPositionIndex(int index, int size, String desc) 確保索引指定大小為size的陣列、列表或字串中的有效位置。 |
| 11 | static void checkPositionIndexes(int start, int end, int size) 確保start和end指定大小為size的陣列、列表或字串中的有效位置,並且是有序的。 |
| 12 | static void checkState(boolean expression) 確保包含呼叫例項的狀態的表示式的真值,但不包含呼叫方法的任何引數。 |
| 13 | static void checkState(boolean expression, Object errorMessage) 確保包含呼叫例項的狀態的表示式的真值,但不包含呼叫方法的任何引數。 |
| 14 | static void checkState(boolean expression, String errorMessageTemplate, Object... errorMessageArgs) 確保包含呼叫例項的狀態的表示式的真值,但不包含呼叫方法的任何引數。 |
繼承的方法
此類繼承自以下類的方法:
- java.lang.Object
Preconditions 類的示例
使用您選擇的任何編輯器建立以下 Java 程式,例如在C:/> Guava中。
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;
}
}
驗證結果
使用javac編譯器編譯類,如下所示:
C:\Guava>javac GuavaTester.java
現在執行 GuavaTester 檢視結果。
C:\Guava>java GuavaTester
檢視結果。
Illegal Argument passed: Negative value -3.0. Illegal Argument passed: First parameter is Null. Illegal Argument passed: Invalid index. (6) must be less than size (5)