断言简介
断言assert是我们在Java编程中常用的一种语法,它常用于程序测试,debug,检查不变量等场景。assert关键字检查后面的表达式的布尔值,若为true则什么也不做,若为false就抛出一个AssertionError。
为什么开启或关闭断言?
我们使用assert是因为他非常方便,有助于我们验证程序在某个特定位置时各个变量的正确性,所以assert可能大量的出现在我们的程序中,而在如不变量检查这种情况下,一个checkRep函数(用于检查不变量是否被满足)内部更是可能调用多个assert并且assert后的表达式比较复杂。如果将这样的代码提交给用户,那么会很大程度的影响程序的性能,减缓运行的速度,需要注意的是,assert这种语法只用在我们编程时寻找错误,不能用于最终提供给客户端的代码(比如给客户的代码判定某个条件不能用assert)。
这个时候我们可能会想到删除assert,但这十分麻烦,所以java提供了一个功能来关闭(开启)断言的使用,关闭后,断言将不再被处理,也就不会影响客户端的性能。
怎样开启或关闭断言?
在Eclipse编辑器中,可以对这个选项进行设置,首先点开你需要编辑的文件,点击上边栏的Run,找到run configurations,打开,然后在右边的选项中选择arguments,如下图:
下面VM arguments中的参数就可以选择断言是否开启,如果是-ea就是开启,-da就是关闭断言。
另外,-ea和-da这两个参数也可以作为直接运行java程序时后面的参数来输入,从而控制运行程序是开启还是关闭断言。
总结
断言是java提供的十分强大的编程手段,可以帮助我们更好的编写程序,但它通常不会出现在客户端程序中,而删除又十分麻烦,所以提供给用户或进行性能测试前可以关闭断言。