文档章节

Spring中Assert工具类的用法

mifans
 mifans
发布于 2017/04/05 18:30
字数 568
阅读 43
收藏 0

spring在提供一个强大的应用开发框架的同时也提供了很多优秀的开发工具类,合理的运用这些工具,将有助于提高开发效率、增强代码质量。下面就最常用的Assert工具类,简要介绍一下它的用法。
Assert断言工具类,通常用于数据合法性检查,在Java编程中,通常会编写如下代码:  

if (name == null || name.equls("")) {  
    throw new IllegalArgumentException("参数错误!");  
}   
     
在所有方法中都使用手工检测合法性的方式并不是太好,因为这样影响了代码的可读性,若使用Assert工具类上面的代码可以简化为:  
  
Assert.hasText((name, "参数错误!");

这样可以大大增强代码的可读性,下面我们来介绍一下Assert 类中的常用断言方法:  
 

断言方法 说明 
1. notNull(Object object)  
当 object 不为 null 时抛出异常,notNull(Object object, String message) 方法允许您通过 message 定制异常信息。和 notNull() 方法断言规则相反的方法是 isNull(Object object)/isNull(Object object, String message),它要求入参一定是 null; 

2. isTrue(boolean expression) / isTrue(boolean expression, String message)  
当 expression 不为 true 抛出异常; 

3. notEmpty(Collection collection) / notEmpty(Collection collection, String message)  
当集合未包含元素时抛出异常。 
notEmpty(Map map) / notEmpty(Map map, String message) 和 notEmpty(Object[] array, String message) / notEmpty(Object[] array, String message) 分别对 Map 和 Object[] 类型的入参进行判断; 

4. hasLength(String text) / hasLength(String text, String message) 

当 text 为 null 或长度为 0 时抛出异常; 

5. hasText(String text) / hasText(String text, String message) 

text 不能为 null 且必须至少包含一个非空格的字符,否则抛出异常; 

6. isInstanceOf(Class clazz, Object obj) / isInstanceOf(Class type, Object obj, String message) 

如果 obj 不能被正确造型为 clazz 指定的类将抛出异常; 

7. isAssignable(Class superType, Class subType) / isAssignable(Class superType, Class subType, String message) 

subType 必须可以按类型匹配于 superType,否则将抛出异常; 

使用 Assert 断言类可以简化方法入参检测的代码,如 InputStream getData(String file) 在应用 Assert 断言类后,其代码可以简化为以下的形式: 

public InputStream getData(String file){ 
    Assert.hasText(file,"file入参不是有效的文件地址"); 
    ① 使用 Spring 断言类进行方法入参检测 
… 
}

本文转载自:http://blog.csdn.net/haschwalth/article/details/50763947

共有 人打赏支持
mifans
粉丝 10
博文 203
码字总数 102329
作品 0
海淀
程序员
Spring 的优秀工具类(2):特殊字符转义和方法入参检测工具类

特殊字符转义 由于 Web 应用程序需要联合使用到多种语言,每种语言都包含一些特殊的字符,对于动态语言或标签式的语言而言,如果需要动态构造语言的内容时,一个我们经常会碰到的问题就是特殊...

采女孩的小蘑菇1
2014/03/31
0
1
java 中的断言assert的使用

一、assertion的意义和用法 J2SE 1.4在语言上提供了一个新特性,就是assertion功能,它是该版本在Java语言方面最大的革新。 从理论上来说,通过 assertion方式可以证明程序的正确性,但是这是...

随智阔
2014/03/26
0
0
StringEscapeUtils类的转义与反转义方法

org.apache.commons.lang.StringEscapeUtils 类可以对js sql html xml等代码进行转义!用来处理前端js注入代码 SQL特殊字符转义   应该说,您即使没有处理 HTML 或 JavaScript 的特殊字符,...

牛闯
2013/12/17
0
0
java unitils的@SpringApplicationContext的用法

用maven构建的一个项目,使用的是SpringMVC结构,bean类配置在项目的WEB-INF/spring-servlet.xml中。 现在需要使用unitils来做测试,按照网上的例子,写了一个Junit4的测试类。 代码如下: ...

雷超林
2013/10/28
1K
4
Spring3.0.5jar包用法详解

Spring3.X以后jar包进行了重构,取消了原来2.X版本中的总的spring.jar包,而是把总包中的功能全部分开打包。正在向osgi靠拢。 各个jar包详解如下: 1. org.springframework.aop 包含在应用中...

sfilyh
2012/03/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

八月新增开源项目:假装自己是图形界面的 Git 命令行工具

每月新增开源项目。顾名思义,每月更新一期。我们会从社区上个月新收录的开源项目中,挑选出有价值的、有用的、优秀的、或者好玩的开源项目来和大家分享。数量不多,但我们力求推荐的都是精品...

编辑部的故事
6分钟前
1
0
20180918 find命令与Linux文件扩展名

命令find 用来查找搜索文件。 搜索文件相关命令: which 从环境变量里的目录中去搜索 whereis(不常用) 从一个固定的库中搜索 locate(需要单独安装 yum install -y mlocate) 查询时会从/var/...

野雪球
9分钟前
0
0
一步步编写自己的PHP爬取代理IP项目(二)

这一章节我们正式开展我们的爬虫项目,首先我们先要知道哪个网站能获取到免费代理IP,目前比较火的网站有西刺代理,快代理等,这里我们拿西刺代理作为例子。 西刺代理官网: http://www.xic...

NateHuang
29分钟前
0
0
GO 数组相关操作

package mainimport("fmt""math/rand""time")func main() {//数组的几种定义方式var arr1 [3]int = [3]int{1,2,3}var arr2 = [3]int{4,5,6}arr3 := [3]string{"h", "w", ......

汤汤圆圆
55分钟前
1
0
JAVA 中interrupt、interrupted和isInterrupted的区别

首先,我们说明下三个方法的功能 interrupt() 向当前调用者线程发出中断信号 isinterrupted() 查看当前中断信号是true还是false interrupted() 是静态方法,查看返回当前中断信号并将中断信号...

我爱春天的毛毛雨
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部