关于java中assert(断言)的使用讲解

说明:写的不是很全面,有任何问题请留言,多交流,谢谢!

1.eclipse、myeclipse开启assert(断言),默认是关闭,如下:

说白了就是设置一下jvm的参数,参数是-ea或者-enableassertions

 

2.assert格式

(1)assert [boolean 表达式]

如果[boolean表达式]为true,则程序继续执行。
如果为false,则程序抛出AssertionError,并终止执行。
(2)assert[boolean 表达式 : 错误表达式 (日志)]
如果[boolean表达式]为true,则程序继续执行。
如果为false,则程序抛出java.lang.AssertionError,输出[错误信息]。
 

 

备注:assert boolean表达式如果是false会造成如下问题:
 

 

 
3.例子,如下:

  public static void main(String[] args) {
    String s = null;
    assert s!=null?true:false;
    assert false;
    System.out.println("end");
  }

 4.spring中的org.springframework.util.Assert,是抽象类
在spring框架中使用的比较多,看源码可以更好的发现spring中assert的实现原理,实际上是对常规判空、长度等使用频率较高语句的工具类抽取(类似commons-lang.jar中的StringUtils.isNotBlank,jdk7中的java.util.Objects等),并结合spring中建议框架内部使用的工具类封装成了Assert。
Assert部分源码:

 

 

 

 StringUtils部分源码:

 

 

 

 

 

 

 

 

 

 

jdk中java.util.Objecs部分源码:

 

 

 

 

 

posted @ 2017-03-14 23:41  喜欢和习惯  阅读(131993)  评论(5编辑  收藏  举报