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)
广告