检查断言是否已启用

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

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

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

 boolean assertEnabled = false; try { assert false; } catch (AssertionError e) { assertEnabled = true; } 
 public static boolean areAssertsEnabled() { boolean assertsEnabled = false; assert assertsEnabled = true; // Intentional side effect!!! return assertsEnabled; } 
 ManagementFactory.getRuntimeMXBean().getInputArguments().contains("-ea");