断言是在Java 1.4中引入的。它能让你验证假设。如果断言失败(即返回false),就会抛出AssertionError(如果启用断言)。

什么时候使用断言?

  断言不应该用于验证输入数据到一个public方法或命令行参数。IllegalArgumentException会是一个更好的选择。在public方法中,只用断言来检查它们根本不应该发生的情况。

import java.util.Collection;
import java.util.Map; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang.StringUtils; /**
* 断言扩展
*
* @ClassName: Assert
* @author coco.xu*/
@SuppressWarnings("rawtypes")
public class Assert { public static void hasText(Long text, String message) {
if (text == null || text == 0)
throw new IllegalArgumentException(message);
else
return;
} public static void hasText(Integer text, String message) {
if (text == null || text == 0)
throw new IllegalArgumentException(message);
else
return;
} public static void hasText(String text, String message) {
org.springframework.util.Assert.hasText(text, message);
} public static void notNull(Object obj, String message) {
if (obj == null) {
throw new IllegalArgumentException(message);
}
} public static void notEmpty(Collection obj, String message) {
if (CollectionUtils.isEmpty(obj)) {
throw new IllegalArgumentException(message);
}
} public static void notEmpty(Map obj, String message) {
if (MapUtils.isEmpty(obj)) {
throw new IllegalArgumentException(message);
}
} public static void hasText(String text) {
org.springframework.util.Assert
.hasText(
text,
"[Assertion failed] - this String argument must have text; it must not be null, empty, or blank");
} public static void notEmpty(String text,String message)
{
if(StringUtils.isEmpty(text))
{
throw new IllegalArgumentException(message);
}
} }

Java基础之断言的更多相关文章

  1. Java基础-异常、断言

    处理错误 如果Java程序运行期间出现了错误,并且由于出现错误导致某些操作没有完成,程序应该能够返回到一种安全状态,并能够让用户执行一些其他的命令:或者允许用户保存所有操作结果,并以妥善的方式终止程序 ...

  2. Java基础知识【下】( 转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  3. Java基础常见英语词汇

    Java基础常见英语词汇(共70个) ['ɔbdʒekt] ['ɔ:rientid]导向的                             ['prəʊɡræmɪŋ]编程 OO: object ...

  4. java基础3.0:Java常用API

    本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...

  5. Java基础之理解Annotation(与@有关,即是注释)

    Java基础之理解Annotation 一.概念 Annontation是Java5开始引入的新特征.中文名称一般叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata) ...

  6. Java 基础知识总结

    作者QQ:1095737364    QQ群:123300273     欢迎加入! 1.数据类型:  数据类型:1>.基本数据类型:1).数值型: 1}.整型类型(byte  8位   (by ...

  7. java基础常见面试题,这是一篇超长的随笔!!!

    1. Java基础部分....................................................... 4 1.一个".java"源文件中是否可以包括 ...

  8. Java面试准备之Java基础

    1.Java 语言的优点 面向对象,平台无关,内存管理,安全性,多线程,Java 是解释型的 2.Java 和 C++的区别 多重继承(java接口多重,类不支持,C++支持) 自动内存管理 预处理功 ...

  9. java基础-3

    java基础-3 API ​ Application Programming Interfaces --- 应用程序接口 Object 顶级父类 Bin --- 二进制 Oct --- 八进制 Dec ...

随机推荐

  1. 2018.09.13 poj2728Desert King(最优比率生成树)

    传送门 01分数规划经典题. 不过用krsukal会T掉. 这题用prim反而更快(毕竟是完全图) 因此直接二分+最小生成树搞定. 代码: #include<iostream> #incl ...

  2. ExtJS+SpringMVC文件上传与下载

    说到文件上传.下载功能,网络上大多介绍的是采用JSP.SpringMVC或者Struts等开源框架的功能,通过配置达到文件上传.下载的目地.可是最近项目要用到文件上传与下载的功能,因为本项目框架采用开 ...

  3. 一文读懂:超详细正态分布方差等于o的推导

    (uv)' = [(u+△u)(v+△v) - uv] /△x = (v△u+u△v +△u△v)/△x = v(△u/△x) + u(△v/△x) +(△u△v)/△x =u'v+uv'

  4. python-optparse模块给脚本增加参数选项

    import optparse parser = optparse.OptionParser('[-] Usage %prog '+ '-H <RHOST[s]> -l [-p -F ]' ...

  5. MySQL-5.7.10主主同步的安装和配置

    目录 目录 1 1. 安装 1 2. 修改MySQL的root密码 4 3. mysqld_safe和mysql.server 4 4. 主主同步配置 4 4.1. 创建同步用户 4 4.2. my. ...

  6. Ubuntu 14.04 LTC 有线网络--网线不识别,灯不亮问题

    sudo ethtool -s eth0 autoneg off speed 100 duplex full

  7. Linux中的LVM和软RAID

        在实际工作中,会经常碰到所给的服务器硬盘容量太小,而实际的应用软件中却需要一个容量较大的分区进行数据存储等,除了通过硬件RAID卡来实现合并多硬盘外,其实我们也可以通过软件的方式来实现. 实验 ...

  8. hdu 5023 线段树+状压

    http://acm.hdu.edu.cn/showproblem.php?pid=5023 在片段上着色,有两种操作,如下: 第一种:P a b c 把 a 片段至 b 片段的颜色都变为 c . 第 ...

  9. 对SpringDAO层支持的总结

    1.问题 1.JDBC/ORM框架(如Hibernate)开发中编程模型有哪些缺点?  如JDBC   2.解决方案(模板设计模式,本质:将可变的和不可变的分离) 模板方法模式:定义操作的步骤(固定的 ...

  10. Beyond Compare脚本:命令行批量比较文件并生成html格式的差异报告

    BComp.exe /silent /closescript /solo @E:\compareTest\BCbatch.txt text-report layout:side-by-side opt ...