4

我在我正在查看的程序中找到了这个代码片段,有人可以解释这里发生了什么吗?

return methodA() || methodB();

methodA 和 methodB 最终返回布尔值。这是某种异常保护还是这条语句总是返回methodA()?

4

3 回答 3

12

它调用methodA并检查结果。如果为真,则立即返回真。否则,它会调用methodB并返回它。

无论如何,这被称为短路运算符。我建议更多地了解 Java 的运算符,因为您可能会经常看到类似的东西。

如果不需要短路行为,他们可以使用

return methodA() | methodB();

它将调用这两种方法,对结果执行按位或(相当于逻辑或布尔值)并返回结果。

于 2013-02-25T15:19:49.173 回答
3

这意味着如果methodA返回true则将其用作返回值,否则使用 的返回值methodB。一种级联评估的返回值。

于 2013-02-25T15:20:02.173 回答
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()则将被调用,其值将被返回。

于 2013-02-25T15:28:39.383 回答