Merlin的魔力: 操纵断言[Java编程]
本文“Merlin的魔力: 操纵断言[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
断言功效是 Java 1.4 发行版所具有的为人热切期盼的一项新功效.您可以将该功效看做是非常处理的一种高级情势.断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式的值为真.比方,程序员大概会在程序中包含断言,使您永久也不会到达 switch 语句中的 default 条件.
由于可以在任什么时刻候启用或禁用断言考证,因此可以在测试时启用断言考证而布置时禁用断言考证.一样,程序投入运行后,终究用户在碰到问题时可以重新启用断言.
在本专栏文章中,通过演示两种差别的方法来启用和禁用断言以便优化代码测试和性能,我将向您报告一些有关向代码中增添断言的基本知识.
断言关键字
断言查抄就象非常处理,但是当断言失利时,却不会抛出非常,而会抛出一个 AssertionError .象全部错误一样,从断言弊端中恢复(假如不是不大概的话)就是很艰难的,因为这样的弊端表明程序状况已偏离正常操作参数.
利用断言的两个基本构造以下:
assert booleanExpression;
assert booleanExpression : message;
注意,可选的消息(message)将作为错误抛出的后果显示出来.
可以将断言语句作为办法的前置条件或后置条件来增添.也可以成立布尔表达式以调用办法.一样,您大概但愿向 if 块中的 else 条件增添断言,这里已经设置了该条件,大概向 switch 语句中的缺省情形中增添断言,使缺省情形永久不大概到达. assert 关键字的唯一限制在于它必须位于可履行块中.不能将断言同实例的类变量声明一块利用,但却可以将其置于任何办法内.
启用断言
假如您想利用断言,那么您必须利用一些专门的号令行选项来编译并运路程序.由于编译器运行于 1.3 兼容情势,因此您必须显式地要求运行在 1.4 情势下.要编译带有断言的程序,只需向 Java 编译器传送 -source 1.4 设置.缺省情形下,会禁用断言查抄,因此在运行时您也要显式地启用这一功效.请利用 -enableassertions 选项或更短的 -ea 选项来启用断言查抄.
下面的简单示例向您介绍了向程序中增添断言查抄的一些必要步骤.它查抄号令行参数的数目,假如值不为 0 时,则报告问题:
public class AssertTest {
public static void main(String args[]) {
assert args.length == 0 : args.length + " != 0";
System.out.println(args.length);
}
}
确保按以下所示利用 -source 选项来编译该程序:
javac -source 1.4 AssertTest.java
要测试该程序,只需运行该程序并传送号令行参数:
java AssertTest 1 2 3 4
因为该程序是用来显示参数的数目,所以该测试程序将显示四.由于在缺省情形下禁用了断言查抄,因此不会检测到任何断言错误.
以上是“Merlin的魔力: 操纵断言[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |