【发布时间】:2010-08-26 06:27:35
【问题描述】:
【问题讨论】:
-
闻到作业或面试题的味道
-
用谷歌搜索不会太难...
-
Java 中没有“断言”语句。有一个“断言”声明并记录在案。
-
重复的问题!
【问题讨论】:
试试这个:
public class AssertionTest {
public static void main(String args[]) {
boolean assertTest = true;
assert assertTest;
assertTest = false;
assert assertTest;
}
}
如果你编译并运行它,你应该知道断言语句是如何工作的。
更新:
正如 cmets 中正确指出的那样,编译后,您将其作为 java -ea AssertionTest 运行 - -ea 标志启用断言。
【讨论】:
-ea 是-enableassertions 选项的缩写形式。
您使用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 了解更多信息。
【讨论】:
Debug 和一个方法 Assert,但是 你为什么希望我这样做使用粘贴的代码 非常混乱。
断言是 JavaTM 编程语言中的一个语句,它使您能够测试您对程序的假设。例如,如果您编写一个计算粒子速度的方法,您可能会断言计算出的速度小于光速。
每个断言都包含一个布尔表达式,当断言执行时您认为该表达式为真。如果不正确,系统将抛出错误。通过验证布尔表达式确实为真,断言确认了您对程序行为的假设,增加了您对程序没有错误的信心。
查看下面的链接以获取更多详细信息和示例 -
http://download.oracle.com/javase/1.4.2/docs/guide/lang/assert.html
http://www.roseindia.net/javacertification/scjp5/assertionsexample.shtml
【讨论】: