可能重复:
What does assert do?
请至少举一个例子给我一些细节。
答案 0 :(得分:9)
试试这个:
public class AssertionTest {
public static void main(String args[]) {
boolean assertTest = true;
assert assertTest;
assertTest = false;
assert assertTest;
}
}
如果你编译并运行它,你应该知道断言语句是如何工作的。
<强>更新强>
正如在注释中正确指出的那样,在编译之后,将其作为java -ea AssertionTest
运行 - -ea
标志启用断言。
答案 1 :(得分:3)
您可以使用assert
关键字来验证您对代码的信任是否属实。
不中的断言替代代码验证,因为它可以在运行时禁用(默认情况下禁用)因此,如果断言被禁用并且您使用它来控制逻辑,你会得到不希望的结果。
例如:
class SomeClass {
public void someMethod( String input ) {
// do something with the input...
String result = processs( input );
assert result.startWith("OK");
// continue with your code..
return result;
}
....
}
在该代码中,程序对输入执行某些操作。您的假设是,结果字符串始终以"OK"
开头。你把断言,以确保发生,但你没有任何逻辑(如果没有发生你不做任何事情)
当您测试代码时,如果您启用了断言,如果您发现结果不是以“OK”开头,那么程序将停止执行。
要启用/解除断言,您必须将标志-ea
传递给java
有关详细信息,请参阅:http://download.oracle.com/javase/1.4.2/docs/guide/lang/assert.html。
答案 2 :(得分:1)
断言是JavaTM编程语言中的一个语句,使您可以测试有关程序的假设。例如,如果您编写一个计算粒子速度的方法,您可能会断言计算出的速度小于光速。
每个断言都包含一个布尔表达式,在断言执行时,您认为该表达式为真。如果不是这样,系统将抛出错误。通过验证布尔表达式确实为真,断言确认了您对程序行为的假设,增加了程序没有错误的信心。
查看下面的链接了解更多详情和示例 -
http://download.oracle.com/javase/1.4.2/docs/guide/lang/assert.html
http://www.roseindia.net/javacertification/scjp5/assertionsexample.shtml