Possible Duplicate:
Shortcut “or-assignment” (|=) operator in Java




我在Android SDK文档中找到了以下示例代码:

    boolean retValue = false;
    retValue |= mActionBarHelper.onCreateOptionsMenu(menu);
    retValue |= super.onCreateOptionsMenu(menu);


谁能给我看等效的代码,以演示它的作用?

注意:我假设方法调用返回一个布尔值,所以我想看一个例子,它看起来像一个if-else构造。

最佳答案

我自己的or的简写并分配给我,尽管它是非短路or而不是逻辑or。因为它可以作为分配和或:ing的简短版本,但有时与布尔值一起使用,因为没有|| =。
但重要的一点:在这种情况下,即使retValue可能已经是true,它也会调用两个方法

因此,等效的(逻辑上的)语句可以是几个,但有些则是:

boolean a = mActionBarHelper.onCreateOptionsMenu(menu);
boolean b = super.onCreateOptionsMenu(menu);
boolean retValue =  a || b;


要么

boolean retValue = mActionBarHelper.onCreateOptionsMenu(menu);
retValue = super.onCreateOptionsMenu(menu) || retValue;

10-04 18:44