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)
廣告
© . All rights reserved.