[Google Guava]--Preconditions类

简介:

Preconditions提供静态方法来检查方法或构造函数,被调用是否给定适当的参数。它检查的先决条件。其方法失败抛出IllegalArgumentException。

类声明

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

@GwtCompatible
public final class Preconditions
   extends Object

类方法

S.N.方法及说明
1static void checkArgument(boolean expression)
确保涉及的一个或多个参数来调用方法表达式的真相。
2static void checkArgument(boolean expression, Object errorMessage)
确保涉及的一个或多个参数来调用方法表达式的真相。
3static void checkArgument(boolean expression, String errorMessageTemplate, Object... errorMessageArgs)
确保涉及的一个或多个参数来调用方法表达式的真相。
4static int checkElementIndex(int index, int size)
确保索引指定一个数组,列表或尺寸大小的字符串有效的元素。
5static int checkElementIndex(int index, int size, String desc)
确保索引指定一个数组,列表或尺寸大小的字符串有效的元素。
6static <T> T checkNotNull(T reference)
确保对象引用作为参数传递给调用方法不为空。
7static <T> T checkNotNull(T reference, Object errorMessage)
确保对象引用作为参数传递给调用方法不为空。
8static <T> T checkNotNull(T reference, String errorMessageTemplate, Object... errorMessageArgs)
确保对象引用作为参数传递给调用方法不为空。
9static int checkPositionIndex(int index, int size)
确保索引指定一个数组,列表或尺寸大小的字符串的有效位置。
10static int checkPositionIndex(int index, int size, String desc)
确保索引指定一个数组,列表或尺寸大小的字符串的有效位置。
11static void checkPositionIndexes(int start, int end, int size)
确保开始和结束指定数组,列表或字符串大小有效的位置,并按照顺序。
12static void checkState(boolean expression)
确保涉及调用实例的状态,但不涉及任何参数来调用方法表达式的真相。
13static void checkState(boolean expression, Object errorMessage)
确保涉及调用实例的状态,但不涉及任何参数来调用方法表达式的真相。
14static void checkState(boolean expression, String errorMessageTemplate, Object... errorMessageArgs)
确保涉及调用实例的状态,但不涉及任何参数来调用方法表达式的真相。

继承的方法

这个类继承了以下类方法:

  • java.lang.Object

Preconditions 示例

public static void main(String[] args) {
    // checkArgument
    try {
        // 校验表达式是否正确,并使用占位符输出错误信息
        Preconditions.checkArgument(1 > 2, "%s is wrong", "1 > 2");
    } catch (IllegalArgumentException e) {
        print(e.getMessage()); // 1 > 2 is wrong
    }

    // checkState
    try {
    // 校验表达式是否正确,并使用占位符输出错误信息,使用方法作为表达式,一般用作校验方法返回是否为真
        Preconditions.checkState(testMethod(), "%s is wrong", "testMethod()");
    } catch (IllegalStateException e) {
        print(e.getMessage()); // testMethod() is wrong
    }

    // checkNotNull
    try {
        // 校验对象是否为空,并使用占位符输出错误信息
        Preconditions.checkNotNull(testObject(), "%s is null", "testObject()");
    } catch (NullPointerException e) {
        print(e.getMessage()); // testObject() is null
    }

    // 初始化测试用list
    List<Integer> list = new ArrayList<Integer>();
    for (int i = 0; i < 10; i++) {
        list.add(i);
    }

    // checkElementIndex
    try {
        // 校验元素索引是否有效 ,使用checkPositionIndex校验
        Preconditions.checkElementIndex(10, list.size());
        // 在临界值size处产生异常
    } catch (IndexOutOfBoundsException e) {
        print(e.getMessage()); // index (10) must be less than size (10)
    }

    // checkPositionIndex
    try {
        // 校验元素索引是否有效,使用checkPositionIndex校验
        Preconditions.checkPositionIndex(10, list.size());
        // 在临界size处不产生异常
        // print("checkPositionIndex does not throw IndexOutOfBoundsException");

    } catch (IndexOutOfBoundsException e) {
        print(e.getMessage()); // checkPositionIndex does not throw
        // IndexOutOfBoundsException
    }

    // checkPositionIndexes
    try {
        // 校验是否是有效的索引区间
        Preconditions.checkPositionIndexes(3, 11, list.size());
    } catch (IndexOutOfBoundsException e) {
        print(e.getMessage()); // end index (11) must not be greater than
        // size (10)
    }
}

private static void print(String message) {
    System.out.println(message);
}
// 测试方法
private static boolean testMethod() {
    return 1 > 2;
}

// 测试对象
private static Object testObject() {
    return null;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值