说我有这样的代码:
boolean ret = a() && b() && c() && d() && e();
只有当所有其他调用a() – d()返回true时,才会调用e().是否可能有一些编译器或JVM选项来禁用短路评估,所以e()将被总是调用,而不管其他函数的结果如何?
基本上我正在做UAT的庞大的系统,需要测试e(),但设置环境和场景,保证所有的a(),b()等返回true是非常痛苦的…
编辑:好的,我猜使用的是AND而不是逻辑的,可以提供一些解决方法,但是理想情况下,我正在寻找一个不需要在源代码中任何更改的解决方案.由于正式和技术原因(正如我所说的系统很大,我们在分期区域之间推广和部署代码并获得签收的过程).这只是为了测试,生产版本需要启用懒惰评估(即使用&&&
验尸报告:
>“正确”答案是:不,没有.
>“有用的”答案:你可以改变&&到&
>“我到底做了什么”答案:远程调试系统,将断点放在表达上,并告诉eclipse运行e()-_-