优雅的参数检验 — guava的Preconditions
发布日期:2021-06-20 05:37:32 浏览次数:13 分类:技术文章

本文共 1595 字,大约阅读时间需要 5 分钟。

##前言:

工具类 就是封装平常用的方法,不需要你重复造轮子,节省开发人员时间,提高工作效率。谷歌作为大公司,当然会从日常的工作中提取中很多高效率的方法出来。所以就诞生了guava。。。它包含以下东西:

  • 集合 [collections]
  • 缓存 [caching]
  • 原生类型支持 [primitives support]
  • 并发库 [concurrency libraries]
  • 通用注解 [common annotations]
  • 字符串处理 [string processing]
  • I/O 等等。

Preconditions工具

今天我们介绍下Preconditions工具如何检验参数,先来看看它都能做哪些类型的参数检验:

1 .checkArgument(boolean) :

  功能描述:检查boolean是否为真。 用作方法中检查参数
  失败时抛出的异常类型: IllegalArgumentException

2.checkNotNull(T):

  功能描述:检查value不为null, 直接返回value;
  失败时抛出的异常类型:NullPointerException

3.checkState(boolean):

  功能描述:检查对象的一些状态,不依赖方法参数。 例如, Iterator可以用来next是否在remove之前被调用。
  失败时抛出的异常类型:IllegalStateException

4.checkElementIndex(int index, int size):

  功能描述:检查index是否为在一个长度为size的list, string或array合法的范围。 index的范围区间是[0, size)[包含0不包含size)。无需直接传入list, string或array, 只需传入大小。返回index。
  失败时抛出的异常类型:IndexOutOfBoundsException

5.checkPositionIndex(int index, int size):

  功能描述:检查位置index是否为在一个长度为size的list, string或array合法的范围。 index的范围区间是[0, size)[包含0不包含size)。无需直接传入list, string或array, 只需传入大小。返回index。
  失败时抛出的异常类型:IndexOutOfBoundsException

6.checkPositionIndexes(int start, int end, int size):

  功能描述:检查[start, end)是一个长度为size的list, string或array合法的范围子集。伴随着错误信息。
  失败时抛出的异常类型:IndexOutOfBoundsException

举个栗子

import com.google.common.base.Preconditions;public class PreconditionsDemo {  public static void main(String args[]) {    boolean demo=5<0;    Preconditions.checkArgument(demo);  }}

输出:

Exception in thread "main" java.lang.IllegalArgumentException   at com.google.common.base.Preconditions.checkArgument(Preconditions.java:108)   at demo.PreconditionsDemo.main(PreconditionsDemo.java:8)

附录:

转载地址:https://blog.csdn.net/h2453532874/article/details/94905827 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Rest应用及其常规实现
下一篇:Sql 语句的对比 -- REPLACE INTO 、 INSERT ON DUPLICATE KEY UPDATE 、 INSERT IGNORE INTO

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年03月15日 04时20分48秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

函数传参字典_Python新手上车17:函数传递任意多个参数 2019-04-21
去掉数组最后一个元素_【一天一大 lee】在排序数组中查找元素的第一个和最后一个位置 (难度:中等) Day20201201... 2019-04-21
秦九韶算法递推公式_算法讲解之复杂度分析 2019-04-21
添加绝对路径_网站中如何添加绝对路径 2019-04-21
python房价数据分析波士顿代码数据_python数据分析-波士顿房价预测-Go语言中文社区... 2019-04-21
redis线程阻塞原因排插_Redis阻塞原因详解 2019-04-21
labview自动保存报表_基于LabVIEW的Excel报表的自动生成功能 2019-04-21
geotool 导出shp_Java 读取shape文件 2019-04-21
mysql 关联更新_MySQL UPDATE多表关联更新 2019-04-21
mysql call_mysql的call用法 call调用函数的例子 2019-04-21
python参数验证_参数验证,Python中的最佳实践 2019-04-21
python画多层网络_在pymn中修改多层网络图 2019-04-21
java net 安卓_android -------- java.net.UnknownServiceException 2019-04-21
java 密钥 aes 解密_Java中AES加密解密以及签名校验 2019-04-21
java树转化成图_Java 转换一组数据为树型数据 2019-04-21
java 底层ppt_Java 如何设置 PPT 中的形状排列方式 具体内容 2019-04-21
mysql更新第5条记录_MYSQL中添加、更新、删除数据 2019-04-21
mysql service5.7_Mysql5.7服务下载安装 2019-04-21
mysql查看线程完整执行命令_MySQL-查看运行的线程-SHOW PROCESSLIST 2019-04-21
mysql 更新数据 字符串_批量替换 MySQL 指定字段中的字符串 2019-04-21