java编程中的断言工具类(org.springframework.util.Assert)
来源:互联网 发布:js 判断有没有滚动条 编辑:程序博客网 时间:2024/05/21 17:18
断言工具类:Assert类,
先举个例子,
当我们在编写类的方法时,常常需要对方法入参进行合法性检查,如果入参不符合要求,方法将通过抛出异常的方式拒绝后续处理。如下所示:
public InputStream getData(String file) {
if (file == null || file.length() == 0|| file.replaceAll("\\s", "").length() == 0) {
throw new IllegalArgumentException("file入参不是有效的文件地址");
}
…
}
类似以上检测方法入参的代码是非常常见,但是在每个方法中都使用手工编写检测逻辑的方式并不是一个好主意。阅读 Spring 源码,您会发现Spring 采用一个 org.springframework.util.Assert 通用类完成这一任务。
Assert 翻译为中文为“断言”,使用过 JUnit 的读者都熟知这个概念,它断定某一个实际的运行值和预期想一样,否则就抛出异常。Spring 对方法入参的检测借用了这个概念,其提供的 Assert 类拥有众多按规则对方法入参进行断言的方法,可以满足大部分方法入参检测的要求。这些断言方法在入参不满足要求时就会抛出 IllegalArgumentException。下面,我们来认识一下 Assert 类中的常用断言方法:
使用 Assert 断言类可以简化方法入参检测的代码,如 InputStream getData(String file) 在应用 Assert 断言类后,其代码可以简化为以下的形式:
public InputStream getData(String file){
Assert.hasText(file,"file入参不是有效的文件地址");
① 使用 Spring 断言类进行方法入参检测
…
}
可见使用 Spring 的 Assert 替代自编码实现的入参检测逻辑后,方法的简洁性得到了不少的提高。Assert 不依赖于 Spring 容器,您可以大胆地在自己的应用中使用这个工具类。
static void
doesNotContain(java.lang.String textToSearch, java.lang.String substring)
断言,给定的文本不包含给定的子串。
static void
doesNotContain(java.lang.String textToSearch, java.lang.String substring, java.lang.String message)
断言,给定的文本不包含给定的子串。
static void
hasLength(java.lang.String text)
断言,由于String是不是空的,也就是说,它不能
null
,而不是空字符串。static void
hasLength(java.lang.String text, java.lang.String message)
断言,由于String是不是空的,也就是说,它不能
null
,而不是空字符串。static void
hasText(java.lang.String text)
断言定String具有有效的文本内容,即它不能
null
,并且必须至少包含一个非空格字符。static void
hasText(java.lang.String text, java.lang.String message)
断言定String具有有效的文本内容,即它不能
null
,并且必须至少包含一个非空格字符。static void
isAssignable(java.lang.Class superType, java.lang.Class subType)
断言
superType.isAssignableFrom(subType)
是true
。static void
isAssignable(java.lang.Class superType, java.lang.Class subType, java.lang.String message)
断言
superType.isAssignableFrom(subType)
是true
。static void
isInstanceOf(java.lang.Class clazz, java.lang.Object obj)
断言提供的对象是所提供的类的实例。
static void
isInstanceOf(java.lang.Class type, java.lang.Object obj, java.lang.String message)
断言提供的对象是所提供的类的实例。
static void
isNull(java.lang.Object object)
断言一个对象是
null
。static void
isNull(java.lang.Object object, java.lang.String message)
断言一个对象是
null
。static void
isTrue(boolean expression)
断言一个布尔表达式,扔
IllegalArgumentException
如果测试结果是false
。static void
isTrue(boolean expression, java.lang.String message)
断言一个布尔表达式,扔
IllegalArgumentException
如果测试结果是false
。static void
noNullElements(java.lang.Object[] array)
断言一个数组没有null元素。
static void
noNullElements(java.lang.Object[] array, java.lang.String message)
断言一个数组没有null元素。
static void
notEmpty(java.util.Collection collection)
断言,一个集合有元素,也就是说,它不能
null
,而且必须有至少一个元素。static void
notEmpty(java.util.Collection collection, java.lang.String message)
断言,一个集合有元素,也就是说,它不能
null
,而且必须有至少一个元素。static void
notEmpty(java.util.Map map)
断言,一个地图的作品,也就是说,它不能
null
,并且必须至少有一个条目。static void
notEmpty(java.util.Map map, java.lang.String message)
断言,一个地图的作品,也就是说,它不能
null
,并且必须至少有一个条目。static void
notEmpty(java.lang.Object[] array)
断言一个数组元素,即它不能
null
,而且必须有至少一个元素。static void
notEmpty(java.lang.Object[] array, java.lang.String message)
断言一个数组元素,即它不能
null
,而且必须有至少一个元素。static void
notNull(java.lang.Object object)
断言一个对象不
null
。static void
notNull(java.lang.Object object, java.lang.String message)
断言一个对象不
null
。static void
state(boolean expression)
断言一个布尔表达式,扔
IllegalStateException
如果测试结果是false
。static void
state(boolean expression, java.lang.String message)
断言一个布尔表达式,扔
IllegalStateException
如果测试结果是false
。 equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
- java编程中的断言工具类(org.springframework.util.Assert)
- org.springframework.util.Assert
- org.springframework.util.Assert
- org.springframework.util.Assert
- org.springframework.util.Assert
- org.springframework.util.Assert
- org.springframework.util.Assert 这个类,叫方法入参检测工具类
- org.springframework.util.AntPathMatcher 工具类
- 有关org.springframework.util.Assert的介绍
- java中的断言assert
- Java中的断言(assert)
- Assert断言工具类
- Java断言(assert)
- Java 断言(assert)
- JAVA assert(断言)
- 关于JAVA中的断言Assert
- Assert.hasText():断言工具类
- Spring-----Assert断言工具类
- UVa 10879 代码重构
- org.springframework.web.context.ContextLoaderListener
- WPF 中的数据绑定
- TI AM3517 EVM 评估板Flash烧写工具中文解析
- 多级数据级联选择,附省市县级联选择功能   -----   JQUERY特效模板
- java编程中的断言工具类(org.springframework.util.Assert)
- 浅析第一个WCF应用
- 情感分析资源
- WebKit/Blink 如何加载网页资源?
- 关于c的可变参数
- 一个图片页面悬浮的例子
- 如何在cocos2d-x 项目中增加全局变量
- c# cpu使用率查询
- PE格式之 区块表与区块