有没有办法在Java中禁用短路评估?
2022-09-04 05:53:16
假设我有这样的代码:
boolean ret = a() && b() && c() && d() && e();
通常,仅当所有其他调用 a()-d() 返回 true 时,才会调用 e()。是否有一些编译器或JVM选项来禁用短路评估,因此无论其他函数的结果如何,e()都将始终被调用?
基本上,我正在做大型系统的UAT,需要测试e(),但是设置环境和场景来确保所有a(),b()等返回真实是非常痛苦的...
编辑:好的,我想使用bit和而不是逻辑的可以提供某种解决方法,但是理想情况下,我正在寻找一种不需要在源代码中进行任何更改的解决方案。由于形式和技术原因(正如我所提到的,系统很大,我们有在暂存区域之间推广和部署代码并获得签核的整个过程)。这仅用于测试,生产版本需要启用惰性评估(即使用 &&)
事后分析:
- “正确”的答案是:不,没有。
- “有用”的答案:你可以改变&&到&
- “我到底做了什么”答案:远程调试系统,在表达式上放置断点,并告诉eclipse运行e() -_-