Java的assert断言以及常见的Assert工具类

2023-11-13

实际上Java有一个保留关键字assert,名字叫断言。断言这个东西可以看做是程序语言关于异常处理的一种高级方式。就是通过断言 <boolean表达式>这种形式以及其他形式捕获异常情况。

Java中的assert也是有的,使用方法也大概是一下两种:
直接接布尔表达式:
assert <boolean表达式>
或者在在后面加个错误信息表达式
assert <boolean表达式> : <错误信息表达式>

看起来很高级,很不错的样子,那为什么感觉日常看代码感觉没有多少人用这个呢?

因为Java这个断言assert比较拉胯,你要配合参数-ea开启,有的IDE工具要自己设置,有的情况甚至还要调整JVM参数来兼容。这么麻烦,而且只是给自己调试用的就没必要了,毕竟调试的工具也很多,比如Junit这些。

Java自己的assert不行,不代表别的assert工具不行,实际上spring的常用工具包有Assert,hutool也支持Assert,你可以把它当做校验工具来使用,来判断是否为空等常用的功能以及其他你需要校验规则的地方。

一下是hutool的Assert的API的一部分
在这里插入图片描述
这些工具类和Java的自己比,表面差异就是一个大写首写字母一个小写首写字母,Java自己的报错是大概是assertException这样的,而工具类的基本是IllegalArgumentException 异常。但是Assert工具类继承了assert的设计想法,用来判断校验,但是更方便,很多常用的工具包都有,不仅仅是只有spring和hutool的。

对比于同样常用的CollectionUtil工具类,Assert工具类除了提供对应有的判断是非为空的功能,更多样,比如监察里面是否有空元素,甚至有的工具类支持你自定义校验规则,所以assert没啥意思,但是Assert工具类却相当的好用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java的assert断言以及常见的Assert工具类 的相关文章

随机推荐

  • 图像分辨率测试ISO12233 - 2017中文翻译

    译者序 目前的摄像头分辨率的测试 大多遵循ISO 12233标准 最近下载一份英文版的文档 和大家一起分享 仅供学习使用 目录 ISO 12233 Third Edition 2017 01 Foreword 前言 Introduction
  • Ant Design pro入门

    Ant Design pro入门 前言 一 了解Ant Design pro 二 使用步骤 1 快速入门 2 ant pro菜单 路由 前言 读此文章需要优先掌握知识 1 React 2 ts 3 Ant Design 一 了解Ant De
  • NLP学习(一)基础篇

    一 前言 2016年3月9日至15日和2017年5月23日至27日 分别在韩国首尔和中国嘉兴乌镇 韩国围棋九段棋手李世石 中国围棋九段棋手柯洁与人工智能围棋程序 阿尔法围棋 AlphaGo 之间的两场比赛 人类均以失败告终 更是激起了各种
  • 深度学习课程设计

    1 安装TensorFlow windows 命令窗口 pip install tensorflow 我之前已经安装过python 可能是因为安装python也安装了pip所以可以直接使用pip命令 之前下载过pycharm 但是没有激活
  • Ubuntu系统下pycharm导入numpy、sklearn等各类包的方法

    本方法适用于无法导入numpy pandas matplotlib sklearn等包 1 打开pycharm 点击左上角file gt setting gt Project gt Python Interpreter 2 点击 号后显示下
  • win10环境变量path误删(windows找不到文件%windir%\systempropertiesadvanced.exe)的解决办法

    首先给出错误 windows找不到文件 windir systempropertiesadvanced exe请确定文件是否正确后 再试一次 当时看到这个错误我真是绝望了 因为我各种百度找path变量怎么恢复 结果百度给一堆环境变量的设置方
  • java实现:《操作系统实验三》模拟内存管理

    固定分区分配 固定分区分配是最简单的一种多道程序存储管理方式 它将用户内存空间划分为若干个固定大小的区域 每个分区只装入一道作业 当有空闲分区时 便可以再从外存的后背作业队列中 选择适当大小的作业装入该分区 如此循环 优缺点 分区大小相等
  • MES管理系统在电子行业的作用和效益

    电子行业近年来发展很好 特别是MES管理系统对于生产的帮助 电子行业MES管理系统促进了行业的数字化转型 从而提高电子行业高效管理 使企业效益最大化 电子行业现状 1 产品 顶级企业只负责设计与销售 对于涉及制造的各级企业产品较多 并且产品
  • win版本的sqlmap报错解决

    原来好好地环境突然报如下错 查了好久资料 竟然没人遇到过 解决方法 python sqlmap py update 没想到吧 完美解决 原来是版本低的原因 我也是醉了 以此记录下
  • Nginx中location规则 与 URL重写(rewrite)详解

    1 Nginx中location与rewrite 1 1 location与rewrite常用的正则表达式 符号 作用 匹配输入字符串的起始位置 匹配输入字符串的结束位置 匹配前面的字符零次或多次 如 ol 能匹配 o 及 ol oll 匹
  • matlab转化上三角矩阵,怎么样把矩阵H变成【A B】,A为上三角矩阵

    p eye 21 21 p1 eye 21 21 pm c zeros 252 672 a1 1 21 a2 22 42 a3 43 63 a4 64 84 a5 85 105 a6 106 126 a7 127 147 a8 148 16
  • 学习笔记——IPSec

    目录 一 整个IPsec工作过程 二 IKE阶段1 三 IKE阶段2 四 IPsec协议 五 华为设备配置命令 一 安全提议 xxx proposal 二 IKE对等体 ike peer 三 IPSec安全框架 ipsec profile
  • Emgu CV3+C#图像处理(一):Emgu CV学习目录+EmguCV安装配置与使用

    EmguCV学习目录 Emgu CV3 C 图像处理 一 Emgu CV学习目录 EmguCV安装配置与使用 Emgu CV3 C 图像处理 二 EmguCV主要模块简介 Emgu CV3 C 图像处理 三 使用EmguCV进行简单图像处理
  • 【重磅更新】图形处理工具NCSS 2019重磅上线!

    NCSS软件提供了370多种全面的统计和图形工具 用以对数据进行分析和实现可视化 我们很高兴地宣布NCSS 2019已经更新 这是统计分析和图形软件的最新版本 我们相信您会发现改进的和新增的程序非常适合您的研究需求 NCSS 2019免费下
  • 语义分割总结(未完待续)

    一 综述 由于工作中很长一段时间都是在做语义分割系列的工作 所以这篇文章主要对自己用到的一些方法做个简单的总结 包括其优缺点等 以便日后能够及时复习查看 目前语义分割的方法主要集中在两个大的结构上 1 encode decode的结构 图像
  • 深入理解计算机系统(原书第三版)系列 第十一章 网络编程

    第十一章 网络编程
  • 【剑指offer】数据结构——数

    目录 数据结构 数 直接解 剑指offer 43 1 n 整数中 1 出现的次数 剑指offer 44 数字序列中某一位的数字 剑指offer 49 丑数 剑指offer 60 n个骰子的点数 剑指offer 62 圆圈中最后剩下的数字 剑
  • 安卓端小黄鸟抓包保姆级教程(附带全套工具,完美解决无网络和ROOT问题)

    抓包工具 1 vmos pro 2 小黄鸟 3 JustTrustMe 4 JustMeplus 5 JustMeAlreadly 6 MT管理工具 抓包环境 vmos pro 虚拟机安卓9版本中 抓包教程 一 安装所需工具 工具安装包我会
  • jpa笔记

    ORM思想 主要目的 操作实体类就相当于操作数据库表 建立两个映射关系 实体类和表的映射关系 实体类中属性与表中字段的映射关系 不再重点关注 sql语句 JPA规范 jpa规范 实现jpa规范 内部是由接口和抽象类组成 实体类 配置映射关系
  • Java的assert断言以及常见的Assert工具类

    实际上Java有一个保留关键字assert 名字叫断言 断言这个东西可以看做是程序语言关于异常处理的一种高级方式 就是通过断言