2013-02-25 54 views

回答

12

它調用methodA和檢查結果。如果爲true,則立即返回true。否則,它調用methodB並返回。

無論如何,這就是所謂的短路操作。我建議你學習更多一點關於Java的運營商,因爲你可能會看到這樣的東西很多。

如果短路行爲不理想,他們可以使用

return methodA() | methodB(); 

它將調用這兩種方法後,對結果的按位或(這相當於邏輯或布爾值),並返回結果。

+0

謝謝你,非常豐富的答案,這對於 – SMC 2013-02-25 15:34:32

3

這意味着如果methodA返回true那麼使用它作爲返回值,否則使用返回值methodB。一種級聯評估的返回值。

0

它縮短下面的形式:

boolean a = methodA(); 
boolean b = methodB(); 

if(a) { 
    return true; 
} 
else if(b) { 
    return true; 
} 
else { 
    return false; 
} 

如果methodA()返回true,則的methodB()不會被調用,真正的將被退回。如果MethodA()返回false,則將調用methodB()將其值返回。

+3

谷歌很難找到。這段代碼和OP中的代碼之間存在語義上的區別;這段代碼總是調用'methodB'。 – gustafc 2013-02-25 15:45:18

+0

請參閱我的示例代碼下面的文本。它已經被提及。我試圖用明確的變量和易讀性來解釋。 – 2013-02-25 17:25:06

相關問題