优雅的参数检验 — 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是否为真。 用作方法中检查参数 失败时抛出的异常类型: IllegalArgumentException2.checkNotNull(T):
功能描述:检查value不为null, 直接返回value; 失败时抛出的异常类型:NullPointerException3.checkState(boolean):
功能描述:检查对象的一些状态,不依赖方法参数。 例如, Iterator可以用来next是否在remove之前被调用。 失败时抛出的异常类型:IllegalStateException4.checkElementIndex(int index, int size):
功能描述:检查index是否为在一个长度为size的list, string或array合法的范围。 index的范围区间是[0, size)[包含0不包含size)。无需直接传入list, string或array, 只需传入大小。返回index。 失败时抛出的异常类型:IndexOutOfBoundsException5.checkPositionIndex(int index, int size):
功能描述:检查位置index是否为在一个长度为size的list, string或array合法的范围。 index的范围区间是[0, size)[包含0不包含size)。无需直接传入list, string或array, 只需传入大小。返回index。 失败时抛出的异常类型:IndexOutOfBoundsException6.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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年03月15日 04时20分48秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
函数传参字典_Python新手上车17:函数传递任意多个参数
2019-04-21
秦九韶算法递推公式_算法讲解之复杂度分析
2019-04-21
添加绝对路径_网站中如何添加绝对路径
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 密钥 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 指定字段中的字符串
2019-04-21