我有这段代码
import java.util.ArrayList;
import java.util.List;
public class AssertTest {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
assert(list.add("test")); //<-- adds an element
System.out.println(list.size());
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
0
Run Code Online (Sandbox Code Playgroud)
为什么输出列表为空?断言如何表现在这里?先感谢您!
您应该使用-ea标志启用断言...例如;
java -ea -cp . AssertTest
Run Code Online (Sandbox Code Playgroud)
使用断言也是副作用最差的地方..
永远不要断言任何副作用.在没有启用断言(启用-ea)的情况下运行时,list.add("test")将不会执行.
这是一个好习惯,永远不要断言但是假的,如下:
if (!list.add("test")) {
assert false;
// Handle the problem
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
780 次 |
| 最近记录: |