位置:首頁 > Java技術 > Guava教學 > Guava Preconditions類

Guava Preconditions類

Preconditions提供靜態方法來檢查方法或構造函數,被調用是否給定適當的參數。它檢查的先決條件。其方法失敗拋出IllegalArgumentException。

類聲明

以下是com.google.common.base.Preconditions類的聲明:

@GwtCompatible
public final class Preconditions
   extends Object

類方法

S.N. 方法及說明
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)
確保索引指定一個數組,列表或尺寸大小的字符串有效的元素。
5 static int checkElementIndex(int index, int size, String desc)
確保索引指定一個數組,列表或尺寸大小的字符串有效的元素。
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)
確保索引指定一個數組,列表或尺寸大小的字符串的有效位置。
10 static int checkPositionIndex(int index, int size, String desc)
確保索引指定一個數組,列表或尺寸大小的字符串的有效位置。
11 static void checkPositionIndexes(int start, int end, int 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)