检查断言是否已启用

时间:2013-05-28 09:07:31

标签: java

您可以在ClassLoader上启用/停用assert

但是如何确定它们是否已经启用?

(我想采用一些执行昂贵检查的代码路径,只有在启用断言的情况下调用JVM时才会执行。)

3 个答案:

答案 0 :(得分:7)

public static boolean areAssertsEnabled() {
  boolean assertsEnabled = false;
  assert assertsEnabled = true; // Intentional side effect!!!
  return assertsEnabled;
}

答案 1 :(得分:5)

boolean assertEnabled = false;

try {
   assert false;
} catch (AssertionError e) {
   assertEnabled = true;
}

答案 2 :(得分:4)

ManagementFactory.getRuntimeMXBean().getInputArguments().contains("-ea");