为什么我的断言声明没有产生任何结果? 我认为第一个断言语句应该失败,但我没有看到Eclipse上显示任何内容。
我正在使用Eclipse来运行此程序。
package java.first;
public class test {
public static void main(String[] args) throws Exception {
String s = "test1";
assert (s == "test");
s = "test";
assert (s == "test");
}
}
答案 0 :(得分:22)
您需要在JVM选项中设置-ea
(启用断言)。
不相关,但您几乎总是想要string1.equals(string2)
而不是==
。
答案 1 :(得分:8)
您必须使用-ea
参数启用断言(-enableassertions
的缩写)。
在Eclipse中:
-ea
放入“VM参数”字段。现在,正在运行应该会导致AssertionError
。
答案 2 :(得分:4)
默认情况下,Java会禁用断言。必须启用它们才能使其正常工作with the -ea option when running your program.
答案 3 :(得分:4)
您需要在运行时打开断言检查。 Java的Oracle文档声明:
要以各种粒度启用断言,请使用 -enableassertions,或-ea,switch。要禁用各种粒度的断言,请使用-disableassertions或-da,switch。
Oracle网站http://docs.oracle.com/javase/1.4.2/docs/guide/lang/assert.html#enable-disable
的详细信息要更改在Eclipse中运行的程序的运行时选项,您需要修改Eclipse运行程序的参数。如何执行此操作将取决于您的Eclipse版本,但这是它在Eclipse Europa中的工作方式......
从http://www.coderanch.com/t/416987/vc/enable-Assertions-eclipse
回答“借来的”答案 4 :(得分:1)
您必须使用-ea参数启用它。