java中的assert作为关键字出现,相信有些人不知道其什么作用。
assert是断言。断言表示一个包含布尔表达式的语句,在执行语句时,假定该表达式为true,如果表达式计算为false,那么系统会报告一个Assertionerror.用于调试目的。
assert 的格式有两种
assert Expression1和assert Expression1:Expression2
第一种表达式如 assert true或assert a>0也可写成assert(a>0),Expression1总是一个boolean值
第二种表达式assert a>0:"out false";第一个参数为boolean值,第二个为输出数据
断言在默认情况下是禁用的,如果要启用断言,需要使用source 1.4标记
要在运行时启用断言,可以用-enableassertions或者-ea标记
要在运行时选择禁用断言,可使用-disableassertions或-da标记
要在系统类中启用断言,可使用-esa或者-dsa
当然还可以在包的基础上启用或者禁用断言
运行时不加jre会自动忽略断言
如程序
class TestAssert{
public static void main(String[] args){
int i = 2;
i +=10.5;
System.out.println("TestStart");
assert i==500:"false";
System.out.println(i);
}
}
编译 javac TestAssert.java
如果运行不加-ea即 java TestAssert
运行结果:
TestStart
12
启用断言java -ea TestAssert
运行结果:
TestStart
Exception in thread "main" java.lang.AssertionError:false
at TestAssert.main(hello.java:5)