|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
通过视频学习比传统的大课堂学习更适合成人化的学习规律。有人说大课堂气氛好,学习氛围浓,热闹,可以认识很多人。
断言功效是Java1.4刊行版所具有的为人热切期盼的一项新功效。您能够将该功效看做是非常处置的一种初级情势。断言暗示为一些布尔表达式,程序员信任在程序中的某个特定点该表达式的值为真。比方,程序员大概会在程序中包括断言,使您永久也不会抵达switch语句中的default前提。
因为能够在任什么时候候启用或禁用断言考证,因而能够在测试时启用断言考证而部署时禁用断言考证。一样,程序投进运转后,终极用户在碰着成绩时能够从头启用断言。
在本专栏文章中,经由过程演示两种分歧的体例来启用和禁用断言以便优化代码测试和功能,我将向您报告一些有关向代码中增加断言的基础常识。
断言关头字
断言反省就象非常处置,可是当断言失利时,却不会抛出非常,而会抛出一个AssertionError。象一切毛病一样,从断言妨碍中恢复(假如不是不成能的话)就是很坚苦的,由于如许的妨碍标明程序形态已偏离一般操纵参数。
利用断言的两个基础机关以下:
assertbooleanExpression;
assertbooleanExpression:message;
注重,可选的动静(message)将作为毛病抛出的了局显现出来。
能够将断言语句作为办法的前置前提或后置前提来增加。也能够创建布尔表达式以挪用办法。一样,您大概但愿向if块中的else前提增加断言,这里已设置了该前提,大概向switch语句中的缺省情形中增加断言,使缺省情形永久不成能抵达。assert关头字的独一限定在于它必需位于可实行块中。不克不及将断言同实例的类变量声明一块利用,但却能够将其置于任何办法内。
启用断言
假如您想利用断言,那末您必需利用一些专门的命令行选项来编译并运转程序。因为编译器运转于1.3兼容形式,因而您必需显式地请求运转在1.4形式下。要编译带有断言的程序,只需向Java编译器传送-source1.4设置。缺省情形下,会禁用断言反省,因而在运转时您也要显式地启用这一功效。请利用-enableassertions选项或更短的-ea选项来启用断言反省。
上面的复杂示例向您先容了向程序中增加断言反省的一些需要步骤。它反省命令行参数的数量,假如值不为0时,则呈报成绩:
publicclassAssertTest{
publicstaticvoidmain(Stringargs[]){
assertargs.length==0:args.length+"!=0";
System.out.println(args.length);
}
}
确保按以下所示利用-source选项来编译该程序:
javac-source1.4AssertTest.java
要测试该程序,只需运转该程序并传送命令行参数:
javaAssertTest1234
由于该程序是用来显现参数的数量,以是该测试程序将显现四。因为在缺省情形下禁用了断言反省,因而不会检测就任何断言毛病。
<p>
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。 |
|