【第三章】Google Guava之 Preconditions学习

Preconditions比较简单,用于检查是否符合条件,如果不符合就抛出异常。
主要有三个方法
checkArgument:检查参数,不返回值
checkNotNull:检查参数不为空,返回值
checkElementIndex:检查元素位置是否正确

/**
 * 检查表达式是否正确,否则抛出设定的错误信息
 */
public static void checkArgument(boolean expression, @CheckForNull Object errorMessage) {
    if (!expression) {
        throw new IllegalArgumentException(String.valueOf(errorMessage));
    }
}

/**
 * 检查是否符合条件,负责输入格式化的字符串信息
 *
 * @param expression           表达式
 * @param errorMessageTemplate 消息模板
 * @param errorMessageArgs     模板参数
 */
public static void checkArgument(
        boolean expression,
        String errorMessageTemplate,
        @CheckForNull @Nullable Object... errorMessageArgs) {
    if (!expression) {
        throw new IllegalArgumentException(lenientFormat(errorMessageTemplate, errorMessageArgs));
    }
}

/**
 * 检查参数不为空,并且返回
 */
@CanIgnoreReturnValue
public static  T checkNotNull(@CheckForNull T reference) {
    if (reference == null) {
        throw new NullPointerException();
    }
    return reference;
}

/**
 * 检查参数不为空,否则抛出指定异常信息
 */
@CanIgnoreReturnValue
public static  T checkNotNull(@CheckForNull T reference, @CheckForNull Object errorMessage) {
    if (reference == null) {
        throw new NullPointerException(String.valueOf(errorMessage));
    }
    return reference;
}


/**
 * 检查指定的索引是否在范围内,否则异常
 *
 * @param index 索引
 * @param size  最大范围, 当index=size时,异常
 * @return
 */
@CanIgnoreReturnValue
public static int checkElementIndex(int index, int size) {
    return checkElementIndex(index, size, "index");
}

/**
 * 检查索引是否在范围内
 *
 * @param index 索引
 * @param size  最大范围,当index=size时不报错
 * @return
 */
@CanIgnoreReturnValue
public static int checkPositionIndex(int index, int size) {
    return checkPositionIndex(index, size, "index");
}

你可能感兴趣的:(java基础面试知识,java常用类库与技巧,guava,学习,java)