Guava - Preconditions 类

前提条件提供静态方法来检查是否使用正确的参数调用方法或构造函数。 它检查先决条件。 它的方法在失败时抛出 IllegalArgumentException。

类声明

以下是 com.google.common.base.Preconditions 类的声明 −

@GwtCompatible
public final class Preconditions
   extends Object

类方法

Sr.No 方法及描述
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)

确保作为参数传递给调用方法的对象引用不为 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)

确保索引指定数组、列表或大小字符串中的有效位置。

10

static int checkPositionIndex(int index, int size, String desc)

确保索引指定数组、列表或大小字符串中的有效位置。

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)

确保涉及调用实例状态的表达式的真实性,但不涉及调用方法的任何参数。

继承的方法

该类继承了以下类的方法 −

  • java.lang.Object

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;
   }
}

验证结果

使用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)