【发布时间】:2013-10-15 08:32:34
【问题描述】:
我对 Java 断言的性能很好奇。 特别是,使用 2 参数 Java 断言,如下所示:
assert condition : expression
即使“条件”的计算结果为真,“表达式”是否也会被计算?我很好奇这对于我们想要超轻量级“条件”但“表达式”可能太重(例如字符串连接)的情况是否是一个可行的解决方案。解决方案,例如Guava 中的先决条件会对表达式求值,因此在这种情况下不可行。
我的测试表明它是惰性评估的,但我找不到任何证明它的参考。
提前致谢!
【问题讨论】:
-
您可以通过调用非void方法来测试它,该方法在调用时会打印出一条消息。
-
是的,我测试了它,但我想要一个正式的证明——一个实现做某事的事实,不知道它是有保证的。布鲁诺的回答指向“官方”保证:)