断言就是肯定某一个结果的返回值是正确的,如果最终此结果的返回值是错误的,则通过断言检查肯定会提示错误信息
断言格式:
assert boolean表达式;
assert boolean表达式:详细信息
如果以上 boolean 表达式的结果为 true,则什么错误信息都不会提示;
如果为 false,则会提示错误信息;
如果没有声明详细信息的描述,则系统会使用默认的错误信息提示方式。
public class Test{
public static void main(String[] args) {
int x[] = {1,2,3};//定义一个数组,长度为 3
assert x.length ==0;//此处断言数组长度为0,肯定是错误的
}
}
- 3
- 4
- 5
- 6
这个程序中,数组 x 的长度是不可能为 0 的,所以此处的断言结果是错误的,但此时运行程序并不会得到任何的结果,因为 Java 在设计此关键字时,考虑到了系统的作用,为了防止某些用户使用 assert 作为关键字,所以在程序正常运行时断言并不会起任何作用,如果要想让断言起作用,需要在 Java 运行时加入以下参数:
-enableassertions 也可以简写为 -ea
编译程序:javac Test.java
验证程序:java -ea Test
- 3
如果要想显示自己的错误信息,可以使用另外一种断言声明格式:
public class Test{
public static void main(String[] args) {
int x[] = {1,2,3};//定义一个数组,长度为 3
assert x.length ==0:"数组长度不为 0";//此处断言数组长度为0,肯定是错误的
}
}
- 3
- 4
- 5
- 6
注意:
(1)虽然断言返回的是 Boolean 值,但是并不能将其作为条件判断语句
(2)断言虽然有检查运行结果的功能,但是一般开发中并不提倡使用断言