0

我希望我的 Java 程序输出的第一行打印断言是否打开。我该怎么做呢?

编辑:一个额外的要求是程序在做有用的工作之前不应该终止。

4

3 回答 3

2
try {
  assert false;
  System.out.println("Assertions disabled.");
}
catch(AssertionError ae) {
  System.out.println("Assertions enabled.");
}  
于 2011-08-13T03:21:23.710 回答
2

这个怎么样?我不知道Java,但我认为这可能有效:

try {
    assert false;
    System.out.println("assertions are disabled");
} catch (AssertionError e) {
    System.out.println("assertions are enabled");
}
于 2011-08-13T03:22:19.720 回答
1

一个性能更好的解决方案(不抛出异常)是:

boolean assertionsEnabled = false;
assert (assertionsEnabled = true);
于 2016-12-27T15:38:16.157 回答