当前位置: 首页 > news >正文

自定义断言工具类

前言

工作中经常使用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, Supplier<X> 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, Supplier<X> 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, Supplier<X> 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, Supplier<X> 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, Supplier<X> 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, Supplier<X> 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, Supplier<X> 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, Supplier<X> supplier) throws X { isTrue(StrUtil.isNotBlank(str), supplier); } /** * 是否 allNotNull,hasNull抛出异常 * * @param col 集合 * @param message 提示信息 */ public static void isAllNotNull(Collection<?> col, String message) { isAllNotNull(col, message, PunctuationConstant.EMPTY); } /** * 是否 allNotNull,hasNull抛出异常 * * @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); } /** * 是否 allNotNull,hasNull抛出异常 */ public static <X extends Throwable> void isAllNotNull(Collection<?> col, Supplier<X> supplier) throws X { isTrue(CollectionUtil.isNotEmpty(col), supplier); isFalse(col.stream().anyMatch(Objects::isNull), supplier); } /** * 是否都不为空 如果存在为空 的元素则抛出异常 * @param col 集合 * @param message 提示信息 */ public static void isAllNotEmpty(Collection<String> col, String message) { isAllNotEmpty(col, message, PunctuationConstant.EMPTY); } /** * 是否都不为空 如果存在为空 的元素则抛出异常 * @param col 集合 * @param message 提示信息 */ public static void isAllNotEmpty(Collection<String> 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(Collection<String> col, Supplier<X> supplier) throws X { // 集合不为空判断 isTrue(CollectionUtil.isNotEmpty(col), supplier); // 集合中不存在空元素 isFalse(col.stream().anyMatch(StrUtil::isEmpty), supplier); } /** * 是否都不为空 如果存在为空 的元素则抛出异常 * @param col 集合 * @param message 提示信息 */ public static void isAllNotBlank(Collection<String> col, String message) { isAllNotBlank(col, message, PunctuationConstant.EMPTY); } /** * 是否都不为空 如果存在为空 的元素则抛出异常 * @param col 集合 * @param message 提示信息 */ public static void isAllNotBlank(Collection<String> 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(Collection<String> col, Supplier<X> 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, Supplier<X> 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, Supplier<X> supplier) throws X { isFalse(Objects.equals(sourceObject, targetObject), supplier); } /** * 默认抛出异常 * @param message 提示信息 */ public static void deFaultThrowCommon(String message) { throw new CommonException(message); } }

使用举例

http://www.jsqmd.com/news/1213336/

相关文章:

  • Windows HEIC缩略图生成器:让iPhone照片在资源管理器清晰可见
  • 2026年7月合肥华硕笔记本维修服务查询|设备登记到交付测试|设备登记要点 - 数码专业售后
  • 鸣潮智能自动化解决方案:基于图像识别的效率工具架构解析与实战指南
  • 3大核心功能:Mac微信插件WeChatExtension-ForMac终极使用指南
  • 3个关键技巧:彻底改变你的暗黑3游戏体验
  • 亨得利沈阳网点资质核验全解|官网公示服务中心信息(2026年7月最新) - 亨得利中国服务中心
  • 免费开源!AMD Ryzen处理器终极调试工具SMUDebugTool完整使用指南
  • AI应用开发:使用ollama-python时如何通过单元测试保障交互稳定性
  • 绥化卖黄金别踩坑!北林区 6 家老牌正规门店全汇总,全城免费上门,断镯金条 K 金全都收 - 不晚生活号
  • 2026年辽宁亮化灯具批发厂家挑选指南 瑞美照明及优质企业梳理 - 资讯焦点
  • 射频芯片技术解析与选型指南
  • 不可计算的无穷:论“素数无限”在计算视域下的不可判定性
  • 2026年7月合肥宏碁笔记本门店地址电话整理|配件方案说明场景到店指南|设备登记要点 - 售后数码产品专业
  • TI MCAN模块ECC机制:从寄存器操作到功能安全实战
  • 深入解析DMM中断系统:嵌入式数据流管理的核心机制
  • PCIe链路初始化与LTSSM状态机解析
  • 深圳黄金回收靠谱渠道全攻略|30分钟免费极速上门高价透明无套路 - 日常比对手册
  • Windows系统维护必备:三个万能命令解决80%故障
  • GET与POST请求:核心区别与最佳实践指南
  • C++进阶 Cmake
  • WSL2深度优化与企业级部署实战指南
  • 无理数宇宙:论模糊性作为实在的本质与认知的智慧
  • 3步掌握基因表达可视化:ClusterGVis新手快速上手指南
  • Flutter高级路由管理:go_router与auto_route实战解析
  • Office 2024搜索失效?一文详解Windows Search索引修复与配置
  • 家族职业选择差异分析:从军官到茶馆经营者的多元路径
  • 万国温州官方售后门店报告|全新地址热线权威公示收录(2026年7月最新) - 万国中国服务中心
  • 【2014-01-26】cocos2dx学习笔记:触摸响应
  • Pyecharts实战:5种交互式数据可视化图表制作
  • 【Devin AI工程师跃迁路线图】:从Prompt Engineer到AI系统架构师的4阶晋升模型(含GitHub实战项目库)