美文网首页
Guava——Preconditions

Guava——Preconditions

作者: 爱吃菜的流浪狗 | 来源:发表于2019-01-02 14:53 被阅读0次

Preconditions作为Guava中的异常的前置检查,提供了一系列方法。用于API实现者检查API参数的合法性。
其中前置检查主要为

public static void checkArgument(boolean expression) {
if (!expression) {
throw new IllegalArgumentException();
}
}

public static void checkState(boolean expression) {
if (!expression) {
throw new IllegalStateException();
}
}

public static <T> T checkNotNull(T reference)
检查是否为空
public static int checkElementIndex(int index, int size)
检查元素的索引是否超出0~size
public static int checkPositionIndex(int index, int size)
判断索引错误或size小于0,返回format
public static void checkPositionIndexes(int start, int end, int size) {
if (start < 0 || end < start || end > size) {
throw new IndexOutOfBoundsException(badPositionIndexes(start, end, size));
}
}

private static String badElementIndex(int index, int size, String desc)

private static String badPositionIndexes(int start, int end, int size)

其中 Preconditions 中实现了format 构造字符串

static String format(String template, @Nullable Object... args) {
template = String.valueOf(template);
StringBuilder builder = new StringBuilder(template.length() + 16 * args.length);
int templateStart = 0;

    int i;
    int placeholderStart;
    for(i = 0; i < args.length; templateStart = placeholderStart + 2) {
        placeholderStart = template.indexOf("%s", templateStart);
        if (placeholderStart == -1) {
            break;
        }

        builder.append(template.substring(templateStart, placeholderStart));
        builder.append(args[i++]);
    }

    builder.append(template.substring(templateStart));
    if (i < args.length) {
        builder.append(" [");
        builder.append(args[i++]);

        while(i < args.length) {
            builder.append(", ");
            builder.append(args[i++]);
        }

        builder.append(']');
    }

    return builder.toString();
}

}

相关文章

  • guava && lamba

    guava: Preconditions.checkArgument(AppUtil.notNullOrDefau...

  • Guava——Preconditions

    概述 Guava provides a number of precondition checking utili...

  • Guava——Preconditions

    Preconditions作为Guava中的异常的前置检查,提供了一系列方法。用于API实现者检查API参数的合法...

  • guava中Preconditions.checkState N

    前言 项目中遇到guava中Preconditions.checkState NoSuchMethod 的报错...

  • 002 Guava | Utilities

    本节介绍Guava的utilities中的工具包, Joiner Spliter Preconditions Ob...

  • Google Guava之Preconditions

    Preconditions比较简单的前置条件:让方法调用的前置条件判断更简单。 准备工作 官方仓库:https:/...

  • Guava-Preconditions & Strings

    Preconditions 用来做断言的,可以使代码变得优雅,不需要通过if去判断,并且还能抛出自定义内容的异常c...

  • guava前置条件Preconditions类

    简介 Preconditions可以快速有效简洁的完成参数校验,避免我们在代码中写很多if语句,guava将所有检...

  • 【Guava】PreConditions来校验参数

    前置条件:让方法调用的前置条件判断更简单。 在我们的日常开发中,经常要对入参进行一定的参数校验,比如是否为空,参数...

  • Preconditions的用法

    Google Guava中提供了一个Preconditions类,用于校验入参的正确性 源码分析: 示例如下:示例...

网友评论

      本文标题:Guava——Preconditions

      本文链接:https://www.haomeiwen.com/subject/agyzlqtx.html