我在我正在查看的程序中找到了此代码段,有人可以解释这里发生了什么吗?
return methodA() || methodB();
methodA和methodB最终返回布尔值。这是某种异常保护还是此语句总是返回methodA()?
答案 0 :(得分:12)
调用methodA
并检查结果。如果为true,则立即返回true。否则,它会调用methodB
并返回。
无论如何,这被称为短路运营商。我建议学习更多关于Java的运算符,因为你可能会看到很多这样的东西。
如果不需要短路行为,可以使用
return methodA() | methodB();
将调用这两种方法,按位执行或对结果执行(相当于逻辑或布尔值)并返回结果。
答案 1 :(得分:3)
这意味着如果methodA
返回true
,则将其用作返回值,否则使用methodB
的返回值。一种级联评估的返回值。
答案 2 :(得分:0)
缩短后续形式:
boolean a = methodA();
boolean b = methodB();
if(a) {
return true;
}
else if(b) {
return true;
}
else {
return false;
}
如果methodA()
返回true,则不会调用methodB(),并返回true。如果MethodA()
返回false,则会调用methodB()
,其值将返回。