自定义断言工具类
前言工作中经常使用if else 抛出自定义异常信息给前端有时候一个请求方法需要很多if else 判断此工具是为了消除if else 判断简化代码代码实现/** * 自定义断言类 指定断言不通过时抛出的异常 */ NoArgsConstructor(access AccessLevel.PRIVATE) public class CustomAssertUtil { /** * 是否为 true 如果为 false抛出异常 * param expression bool * param message 提示信息 */ public static void isTrue(boolean expression, String message) { isTrue(expression, message, PunctuationConstant.EMPTY); } public static void isTrue(boolean expression, String message, Object... args) { if (!expression) { deFaultThrowCommon(StrUtil.format(message, args)); } } /** * 是否为 true 如果为 false抛出异常 * param expression bool */ public static X extends Throwable void isTrue(boolean expression, Supplier? extends X supplier) throws X { if (!expression) { throw supplier.get(); } } /** * 是否为 false 如果为 true 抛出异常 * * param expression bool * param message 提示信息 */ public static void isFalse(boolean expression, String message) { isTrue(!expression, message); } /** * 是否为 false 如果为 true 抛出异常 * * param expression bool * param message 提示信息 */ public static void isFalse(boolean expression, String message, Object... args) { isTrue(!expression, message, args); } /** * 是否为 false 如果为 true 抛出异常 * param expression bool */ public static X extends Throwable void isFalse(boolean expression, Supplier? extends X supplier) throws X { if (expression) { throw supplier.get(); } } /** * 是否为 null 如果不为 null 抛出异常 * param object obj * param message 提示信息 */ public static void isNull(Object object, String message) { isNull(object, message, PunctuationConstant.EMPTY); } /** * 是否为 null 如果不为 null 抛出异常 * param object obj * param message 提示信息 */ public static void isNull(Object object, String message, Object... args) { isTrue(object null, message, args); } /** * 是否为 null 如果不为 null 抛出异常 * param object obj * param supplier 自定义异常 */ public static X extends Throwable void isNull(Object object, SupplierX supplier) throws X { isTrue(object null, supplier); } /** * 是否不为 null 如果为 null 抛出异常 * param object obj * param message 提示信息 */ public static void isNotNull(Object object, String message) { isNotNull(object, message, PunctuationConstant.EMPTY); } /** * 是否不为 null 如果为 null 抛出异常 * param object obj * param message 提示信息 */ public static void isNotNull(Object object, String message, Object... args) { isTrue(object ! null, message, args); } /** * 是否不为 null 如果为 null 抛出异常 */ public static X extends Throwable void isNotNull(Object object, SupplierX supplier) throws X { isTrue(object ! null, supplier); } /** * 是否 为空 不为空抛出 异常 * param str str * param message 提示信息 */ public static void isEmpty(String str, String message) { isEmpty(str, message, PunctuationConstant.EMPTY); } /** * 是否 为空 不为空抛出 异常 * param str str * param message 提示信息 */ public static void isEmpty(String str, String message, Object... args) { isTrue(StrUtil.isEmpty(str), message, args); } /** * 是否 为空 不为空抛出 异常 * param str str * param supplier 自定义异常 */ public static X extends Throwable void isEmpty(String str, SupplierX supplier) throws X { isTrue(StrUtil.isEmpty(str), supplier); } /** * 集合为空, 如果不为null或不为空集合则抛出异常 * param col 集合 * param message 提示信息 */ public static void isEmpty(Collection? col, String message) { isEmpty(col, message, PunctuationConstant.EMPTY); } /** * 集合为空, 如果不为null或不为空集合则抛出异常 * param col 集合 * param message 提示信息 */ public static void isEmpty(Collection? col, String message, Object... args) { isTrue(CollectionUtil.isEmpty(col), message, args); } /** * 集合为空, 如果不为null或不为空集合则抛出异常 */ public static X extends Throwable void isEmpty(Collection? col, SupplierX supplier) throws X { isTrue(CollectionUtil.isEmpty(col), supplier); } /** * 是否 不为空 为空抛出 异常 * param str str * param message 提示信息 */ public static void isNotEmpty(String str, String message) { isNotEmpty(str, message, PunctuationConstant.EMPTY); } /** * 是否 不为空 为空抛出 异常 * param str str * param message 提示信息 */ public static void isNotEmpty(String str, String message, Object... args) { isTrue(StrUtil.isNotEmpty(str), message, args); } /** * 是否 不为空 为空抛出 异常 * param str str * param supplier 自定义异常 */ public static X extends Throwable void isNotEmpty(String str, SupplierX supplier) throws X { isTrue(StrUtil.isNotEmpty(str), supplier); } /** * 集合不为空, 如果为null或空集合则抛出异常 * param col 集合 * param message 提示信息 */ public static void isNotEmpty(Collection? col, String message) { isNotEmpty(col, message, PunctuationConstant.EMPTY); } /** * 集合不为空, 如果为null或空集合则抛出异常 * param col 集合 * param message 提示信息 */ public static void isNotEmpty(Collection? col, String message, Object... args) { isTrue(CollectionUtil.isNotEmpty(col), message, args); } /** * 集合不为空, 如果为null或空集合则抛出异常 */ public static X extends Throwable void isNotEmpty(Collection? col, SupplierX supplier) throws X { isTrue(CollectionUtil.isNotEmpty(col), supplier); } /** * 是否 为空 不为空抛出 异常 * param str str * param message 提示信息 */ public static void isBlank(String str, String message) { isBlank(str, message, PunctuationConstant.EMPTY); } /** * 是否 为空 不为空抛出 异常 * param str str * param message 提示信息 */ public static void isBlank(String str, String message, Object... args) { isTrue(StrUtil.isBlank(str), message, args); } /** * 是否 为空 不为空抛出 异常 * param str str * param supplier 自定义异常 */ public static X extends Throwable void isBlank(String str, SupplierX supplier) throws X { isTrue(StrUtil.isBlank(str), supplier); } /** * 是否 不为空 为空抛出 异常 * param str str * param message 提示信息 */ public static void isNotBlank(String str, String message) { isNotBlank(str, message, PunctuationConstant.EMPTY); } /** * 是否 不为空 为空抛出 异常 * param str str * param message 提示信息 */ public static void isNotBlank(String str, String message, Object... args) { isTrue(StrUtil.isNotBlank(str), message, args); } /** * 是否 不为空 为空抛出 异常 * param str str * param supplier 自定义异常 */ public static X extends Throwable void isNotBlank(String str, SupplierX supplier) throws X { isTrue(StrUtil.isNotBlank(str), supplier); } /** * 是否 allNotNullhasNull抛出异常 * * param col 集合 * param message 提示信息 */ public static void isAllNotNull(Collection? col, String message) { isAllNotNull(col, message, PunctuationConstant.EMPTY); } /** * 是否 allNotNullhasNull抛出异常 * * param col 集合 * param message 提示信息 */ public static void isAllNotNull(Collection? col, String message, Object... args) { isTrue(CollectionUtil.isNotEmpty(col), message, args); isTrue(col.stream().anyMatch(Objects::isNull), message, args); } /** * 是否 allNotNullhasNull抛出异常 */ public static X extends Throwable void isAllNotNull(Collection? col, SupplierX supplier) throws X { isTrue(CollectionUtil.isNotEmpty(col), supplier); isFalse(col.stream().anyMatch(Objects::isNull), supplier); } /** * 是否都不为空 如果存在为空 的元素则抛出异常 * param col 集合 * param message 提示信息 */ public static void isAllNotEmpty(CollectionString col, String message) { isAllNotEmpty(col, message, PunctuationConstant.EMPTY); } /** * 是否都不为空 如果存在为空 的元素则抛出异常 * param col 集合 * param message 提示信息 */ public static void isAllNotEmpty(CollectionString col, String message, Object... args) { // 集合不为空判断 isTrue(CollectionUtil.isNotEmpty(col), message, args); // 集合中不存在空元素 isFalse(col.stream().anyMatch(StrUtil::isEmpty), message, args); } /** * 断言集合中所有元素都不为空如果存在空元素则抛出异常 * param col 集合 * param supplier 自定义异常 */ public static X extends Throwable void isAllNotEmpty(CollectionString col, SupplierX supplier) throws X { // 集合不为空判断 isTrue(CollectionUtil.isNotEmpty(col), supplier); // 集合中不存在空元素 isFalse(col.stream().anyMatch(StrUtil::isEmpty), supplier); } /** * 是否都不为空 如果存在为空 的元素则抛出异常 * param col 集合 * param message 提示信息 */ public static void isAllNotBlank(CollectionString col, String message) { isAllNotBlank(col, message, PunctuationConstant.EMPTY); } /** * 是否都不为空 如果存在为空 的元素则抛出异常 * param col 集合 * param message 提示信息 */ public static void isAllNotBlank(CollectionString col, String message, Object... args) { // 集合不为空判断 isTrue(CollectionUtil.isNotEmpty(col), message, args); // 集合中不存在空白元素 isFalse(col.stream().anyMatch(StrUtil::isBlank), message, args); } /** * 断言集合中所有元素都不为空如果存在空元素则抛出异常 * param col 集合 * param supplier 自定义异常 */ public static X extends Throwable void isAllNotBlank(CollectionString col, SupplierX supplier) throws X { // 集合不为空判断 isTrue(CollectionUtil.isNotEmpty(col), supplier); // 集合中不存在空白元素 isFalse(col.stream().anyMatch(StrUtil::isBlank), supplier); } /** * 两个对象相等如果不相等则抛出异常 * param sourceObject obj1 * param targetObject obj2 * param message 提示信息 */ public static void equal(Object sourceObject, Object targetObject, String message) { equal(sourceObject, targetObject, message, PunctuationConstant.EMPTY); } /** * 两个对象相等如果不相等则抛出异常 * param sourceObject obj1 * param targetObject obj2 * param message 提示信息 */ public static void equal(Object sourceObject, Object targetObject, String message, Object... args) { isTrue(Objects.equals(sourceObject, targetObject), message, args); } /** * 两个对象相等如果不相等则抛出异常 * param sourceObject obj1 * param targetObject obj2 * param supplier 自定义异常 */ public static X extends Throwable void equal(Object sourceObject, Object targetObject, SupplierX supplier) throws X { isTrue(Objects.equals(sourceObject, targetObject), supplier); } /** * 断言两个对象不相等如果相等则抛出异常 * param sourceObject obj1 * param targetObject obj2 * param message 提示信息 */ public static void notEqual(Object sourceObject, Object targetObject, String message) { notEqual(sourceObject, targetObject, message, PunctuationConstant.EMPTY); } /** * 断言两个对象不相等如果相等则抛出异常 * param sourceObject obj1 * param targetObject obj2 * param message 提示信息 */ public static void notEqual(Object sourceObject, Object targetObject, String message, Object... args) { isTrue(Objects.equals(sourceObject, targetObject), message, args); } /** * 断言两个对象不相等如果相等则抛出异常 * param sourceObject obj1 * param targetObject obj2 * param supplier 自定义异常 */ public static X extends Throwable void notEqual(Object sourceObject, Object targetObject, SupplierX supplier) throws X { isFalse(Objects.equals(sourceObject, targetObject), supplier); } /** * 默认抛出异常 * param message 提示信息 */ public static void deFaultThrowCommon(String message) { throw new CommonException(message); } }使用举例

相关新闻

JSSDK开发指南:从基础概念到实战应用

JSSDK开发指南:从基础概念到实战应用

1. JSSDK开发基础概念 JSSDK(JavaScript Software Development Kit)是一种基于JavaScript的软件开发工具包,它允许开发者通过JavaScript代码调用平台提供的各种原生能力和接口。在Web开发中,JSSDK通常用于连接网页应用和原生平台功…

2026/11/3 15:36:32 阅读更多 →
Turbowarp文本换行难题解析:字符编码原理与3种实用解决方案

Turbowarp文本换行难题解析:字符编码原理与3种实用解决方案

你是不是也遇到过这样的问题:在Turbowarp里想要让文本换行显示,却发现按回车键根本不起作用?明明在其他编程环境里很简单的换行操作,在Turbowarp里却变成了一个让人头疼的技术难题。其实,Turbowarp的文本换行问题背后隐…

2026/10/31 14:31:48 阅读更多 →
RAG 如何降低成本?缓存、摘要和分层检索

RAG 如何降低成本?缓存、摘要和分层检索

上一篇文章里,我们讨论了多模态 RAG。 一个重要结论是: 图片、截图、表格和流程图也可以进入 RAG 检索链路。 但当 RAG 真的上线以后,另一个更现实的问题会立刻出现: 成本。 RAG 的成本不只来自大模型调用,还来自&…

2026/11/2 17:38:27 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/3 1:09:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/3 10:57:27 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/3 11:35:49 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/3 2:27:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/3 10:47:27 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/3 10:57:33 阅读更多 →

日新闻

周新闻

月新闻