Guava 简明教程

Guava - Preconditions Class

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

Class Declaration

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

@GwtCompatible
public final class Preconditions
   extends Object

Class Methods

Sr.No

Method & Description

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) 确保 index 指定数组、列表或大小字符串中的有效元素。

5

static int checkElementIndex(int index, int size, String desc) 确保 index 指定数组、列表或大小字符串中的有效元素。

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) 确保 index 指定数组、列表或大小字符串中的有效位置。

10

static int checkPositionIndex(int index, int size, String desc) 确保 index 指定数组、列表或大小字符串中的有效位置。

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) 确保涉及调用实例状态但没有涉及调用方法的任何参数的表达式的真实性。

Methods Inherited

此类从以下类继承方法 −

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

Verify the Result

按照如下方式使用 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)