教程 > Guava 教程 > Guava 基础 阅读:37

Guava Preconditions 类

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) 确保索引指定数组、列表或大小字符串中的有效元素。
5 static int checkElementIndex(int index, int size, String desc) 确保索引指定数组、列表或大小字符串中的有效元素。
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) 确保索引指定数组、列表或大小字符串中的有效位置。
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

Optional 类示例

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)

查看笔记

扫码一下
查看教程更方便