Guava Preconditions类

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) 确保索引指定的元素在大小为size的数组、列表或字符串中有效。
5 static int checkElementIndex(int index, int size, String desc) 确保索引指定的元素在大小为size的数组、列表或字符串中有效。
6 static T checkNotNull(T reference) 确保作为参数传递给调用方法的对象引用不为null。
7 static T checkNotNull(T reference, Object errorMessage) 确保作为参数传递给调用方法的对象引用不为null。
8 static T checkNotNull(T reference, String errorMessageTemplate, Object… errorMessageArgs)确保作为参数传递给调用方法的对象引用不为null。
9 static int checkPositionIndex(int index, int size) 确保index在大小为size的数组、列表或字符串中指定一个有效位置。
10 static int checkPositionIndex(int index, int size, String desc) 确保index在大小为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) 确保涉及调用实例状态的表达式的真实性,但不涉及调用方法的任何参数。

继承方法

这个类从以下类继承方法 –

前置条件类的示例

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程