什么是Java中的断言语句?

时间:2010-08-26 06:27:36

标签: java assert

  

可能重复:
  What does assert do?

请至少举一个例子给我一些细节。

3 个答案:

答案 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