检查断言是否已启用
您可以在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");