Guava - 先决条件类


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

类别声明

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

@GwtCompatible
public final class Preconditions
   extends Object

类方法

先生编号 方法及说明
1

static void checkArgument(布尔表达式)

确保涉及调用方法的一个或多个参数的表达式的真实性。

2

static void checkArgument(布尔表达式,对象错误消息)

确保涉及调用方法的一个或多个参数的表达式的真实性。

3

static void checkArgument(布尔表达式, String errorMessageTemplate, Object.errorMessageArgs)

确保涉及调用方法的一个或多个参数的表达式的真实性。

4

静态 int checkElementIndex(int 索引, int 大小)

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

5

static int checkElementIndex(int 索引, int 大小, String desc)

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

6

静态 <T> T checkNotNull(T 引用)

确保作为参数传递给调用方法的对象引用不为 null。

7

static <T> T checkNotNull(T 引用,对象 errorMessage)

确保作为参数传递给调用方法的对象引用不为 null。

8

static <T> T checkNotNull(T 引用,字符串 errorMessageTemplate,对象... errorMessageArgs)

确保作为参数传递给调用方法的对象引用不为 null。

9

静态 int checkPositionIndex(int 索引, int 大小)

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

10

static int checkPositionIndex(int 索引, int 大小, String desc)

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

11

静态无效 checkPositionIndexes(int 开始,int 结束,int 大小)

确保 start 和 end 指定数组、列表或大小字符串中的有效位置,并且按顺序排列。

12

静态无效 checkState(布尔表达式)

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

13

static void checkState(布尔表达式, 对象错误消息)

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

14

static void checkState(布尔表达式,字符串 errorMessageTemplate,对象... errorMessageArgs)

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

继承的方法

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

  • java.lang.Object

先决条件类示例

使用您选择的任何编辑器(例如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)