15

为什么我的断言语句没有产生任何结果?我认为第一个断言语句应该失败,但我没有看到 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");
  }
} 
4

5 回答 5

30

您需要-ea在 JVM 选项中设置 (Enable Assertions)。


不相关,但您几乎总是想要string1.equals(string2)而不是==.

于 2013-07-29T17:24:36.360 回答
12

您必须使用-ea参数(缩写-enableassertions)启用断言。

在 Eclipse 中:

  • 右键单击项目,然后“运行方式”“运行配置...”
  • 选择“参数”选项卡
  • 放入-eaVM 参数”字段。
  • 选择“应用”

现在,运行应该会导致AssertionError.

于 2013-07-29T17:24:28.233 回答
5

默认情况下,Java 禁用断言。必须在运行程序时使用 -ea 选项启用它们才能工作。

于 2013-07-29T17:24:36.443 回答
4

您需要在运行时打开断言检查。Java 的 Oracle 文档指出:

要以各种粒度启用断言,请使用 -enableassertions 或 -ea 开关。要禁用各种粒度的断言,请使用 -disableassertions 或 -da 开关。

Oracle 网站上的完整详细信息http://docs.oracle.com/javase/1.4.2/docs/guide/lang/assert.html#enable-disable

要更改在 Eclipse 中运行的程序的运行时选项,您需要修改 Eclipse 运行程序时使用的参数。如何执行此操作将根据您的 Eclipse 版本而有所不同,但这是它在 Eclipse Europa 中的工作方式......

  • 打开运行对话框(这应该是“运行”菜单下的一个选项)。
  • 单击选项卡“(x)= 参数”。
  • 在“VM 参数”字段中,输入 -ea 以启用断言。
  • 单击“应用”按钮。

从http://www.coderanch.com/t/416987/vc/enable-Assertions-eclipse回答“借来的”

于 2013-07-29T17:26:44.193 回答
1

您必须使用 -ea 参数启用它。

于 2013-07-29T17:25:26.243 回答