【发布时间】:2023-03-06 04:45:01
【问题描述】:
如果我在Oracle documentation 之后激活断言
ClassLoader.getSystemClassLoader().setDefaultAssertionStatus(true);
ClassLoader.getSystemClassLoader().setPackageAssertionStatus("richtercloud.java.assertion.ignored", true);
System.out.println(String.format("desired assertion status: %b",
NewMain.class.desiredAssertionStatus()));
assert false;
System.out.println("assertion has been ignored");
在richtercloud.java.assertion.ignored.NewMain 类的main 方法中,我从打印的语句中看到assert false 不会导致AssertionError 就像我将NewMain 打包在JAR 中并使用java -ea -jar java-assertion-ignored-1.0-SNAPSHOT-jar-with-dependencies.jar richtercloud.java.assertion.ignored.NewMain.
关于以编程方式启用断言only suggest to not use assertions 的其他问题,这显然不是解决方案。
【问题讨论】: