【Spring/Assert】在Maven项目中使用org.springframework.util.Assert
Assert绝对是一个令人眼睛一亮的类,它简洁得以单行形式就完成了对象的校验及不合规时抛出异常,具体做法如下:
Object obj=null; ...... Assert.notNull(obj, "对象不该为空而为空,故而抛出异常");
而执行结果是:
Exception in thread "main" java.lang.IllegalArgumentException: 对象不该为空而为空,故而抛出异常 at org.springframework.util.Assert.notNull(Assert.java:201) at ufo.Test.main(Test.java:8)
这种做法显然比常规的判空抛异常简便,又比Optional实用。
Assert类的常用方法还有
Assert.hasText(String text, "text must not be empty") | text 不为null且必须至少包含一个非空格的字符 |
Assert.hasLength(String text, "text must be specified") | 字符不为null且字符长度不为0 |
Assert.notEmpty(Collection collection, "collection must not be empty") | 集合非空 |
Assert.isTrue(boolean value, "value must be true") | 对象必须为true |
Assert.isInstanceOf(Class type, Object obj, String message) | 如果 obj 不能被正确造型为 clazz 指定的类将抛出异常 |
其余请大家补充。
这个类全路径名是org.springframework.util.Assert,它在我的机器上位于spring-core-5.3.9.jar包中,即spring-core-[version].jar中。
要使用这个类,对于必然引入spring-core包的SpringBoot/SpringCloud程序来说,直接使用即可,但对于Maven工程,就需要引入spring-core的依赖了。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.hy</groupId> <artifactId>ufo</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.3.9</version> </dependency>
... </dependencies> </project>
我是怎么找到这个位置的呢?我是先找到本机上的.m2路径(C:\Users\ufo\.m2),然后找到repository目录,再找到org目录,在找到springframework目录,再找到spring-core目录,最后确定 5.3.9 目录,发现spring-core-5.3.9.jar就在其中。全路径是:C:\Users\ufo\.m2\repository\org\springframework\spring-core\5.3.9
最后,5.3.9填到version节点里,spring-core填到artifactId里,org.springframework填到groupId里。
我们可以发现,对于.ms/repository里面的jar包,有着这样的对应关系:
倒数第一层目录 | version |
倒数第二层目录 | artifactId |
repository到倒数第三层中间的路径 | groupId |
最后,有了
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.3.9</version> </dependency>
这个依赖,Maven工程就能愉快的使用Assert类了。
END
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2019-09-27 做一个把网页带出来的SpringBoot工程
2019-09-27 将一个SpringBoot工程打成jar包并在控制台执行起来
2019-09-27 Spring Boot Cli下载安装
2019-09-27 发布Rest风格的WebService的SpringBoot极简例子
2017-09-27 【高中数学/解析几何】若直线y=x+b与曲线y=3-根号下(4x-x^2)有公共点,求b的取值范围?
2013-09-27 perl install-module.pl DateTime 执行无效问题的解决
2013-09-27 在Linux上使用iptables命令开启对外访问的网络端口