zoukankan      html  css  js  c++  java
  • Guava Preconditions 工具参数前置校验

       guava 提供 Preconditions  作为代码校验的工具类,用来简化开发中对代码的校验或预处理,在逻辑开始前进行合理性校验,避免参数传入过深导致的数据错误。

       并且能够在不符合校验条件的地方,准确的为我们显示出问题所在。Preconditions 进行了大量方法的重载,总体来说很简单,看下面的总结就懂了。

    1.checkArgument

    checkArgument(boolean expression, @Nullable String errorMessageTemplate, @Nullable Object... errorMessageArgs):校验表达式是否为真,不为真时显示错误信息,错误信息中允许使用占位符。
    
    //校验表达式是否正确,并使用占位符输出错误信息
    Preconditions.checkArgument(3 > 4, "%s is wrong", "3 > 4");

    2.checkState

    checkState(boolean expression):校验表达式是否为真,一般用作校验方法返回是否为真。
    
    checkState(boolean expression, @Nullable Object errorMessage):当表达式为假的时候,显示指定的错误信息。
    
    checkState(boolean expression,@Nullable String errorMessageTemplate,@Nullable Object... errorMessageArgs):校验表达式允许在错误信息中使用占位符。
    
    //校验表达式是否正确,并使用占位符输出错误信息,使用方法作为表达式
    Preconditions.checkState(testState(), "%s is wrong", "testState()");

    3.checkNotNull

    checkNotNull(T reference):校验对象是否为空。
    
    checkNotNull(T reference, @Nullable Object errorMessage):对象为空时显示指定的错误信息。
    
    checkNotNull(T reference, @Nullable String errorMessageTemplate,@Nullable Object... errorMessageArgs):允许在错误信息中使用占位符。
    
     //校验对象是否为空,并使用占位符输出错误信息
    Preconditions.checkNotNull(testObject(), "%s is null", "testObject()");

    4.checkElementIndex

    checkElementIndex( int index, int size, @Nullable String desc):校验元素的索引值是否有效,index大于等于0小于size,在无效时显示错误描述信息。
    
    checkElementIndex(int index, int size):错误描述信息为“index”。
    
    //校验元素索引是否有效 ,使用checkPositionIndex校验
    Preconditions.checkElementIndex(17, list.size());

    5.checkPositionIndex

    checkPositionIndex(int index, int size, @Nullable String desc):校验元素的索引值是否有效,index大于等于0小于等于size,在无效时显示错误描述信息。
    
    checkPositionIndex(int index, int size):错误描述信息为“index”。
    
    //校验元素索引是否有效,使用checkPositionIndex校验,在临界值不产生异常
     Preconditions.checkPositionIndex(17, list.size());

    6.checkPositionIndexes

    checkPositionIndexes(int start, int end, int size):校验大于等于start,小于end的list的长度是否为size。
    
    //校验是否是有效的索引区间
    Preconditions.checkPositionIndexes(3, 11, list.size());
  • 相关阅读:
    微信公众平台—— 获取微信服务器IP地址
    微信公众平台——获取access_token、expires_in
    PHP版本切换
    开源各种系统
    VUE -- 如何快速的写出一个Vue的icon组件?
    Mac下php 5升级到php 7的步骤详解
    Nginx反向代理导致PHP获取不到正确的HTTP_HOST,SERVER_NAME,客户端IP的解决方法
    nginx服务器URL无法自动添加index.php
    php类库安装xml simplexml
    Mac DBeaver Client home is not specified for connection解决办法
  • 原文地址:https://www.cnblogs.com/java-class/p/8484787.html
Copyright © 2011-2022 走看看