Run*_*oro 9 java methods assert
为什么assertjava中有关键字,而不是方法?
方法断言可能如下所示:
public static void assert(boolean condition) {
if(!condition) {
throw new AssertionError();
}
}
Run Code Online (Sandbox Code Playgroud)
Java®语言规范中提供了此问题的答案
断言是包含布尔表达式的断言语句.断言被启用或禁用.如果断言已启用,则断言的执行会导致对布尔表达式进行求值,如果表达式求值为false,则会报告错误.如果断言被禁用,则断言的执行不会产生任何影响.
那么,如果assert是一种方法,那么这样的代码:
assert(check());
Run Code Online (Sandbox Code Playgroud)
无论是启用还是禁用断言,都将始终调用该check方法.
现在,由于assert是一个具有特殊处理的关键字(如上所述),只有在启用断言时check才会调用该方法,因为只有这个断言的布尔表达式才会被计算.
| 归档时间: |
|
| 查看次数: |
1595 次 |
| 最近记录: |