0

可能重复:
Java 中的快捷方式“或赋值”(|=)运算符

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

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

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

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

4

2 回答 2

8

| 应用于布尔值只是一个简单的布尔值 OR。

boolean retValue = false;
retValue = retValue | mActionBarHelper.onCreateOptionsMenu(menu);
retValue = retValue | super.onCreateOptionsMenu(menu);
于 2012-05-10T21:32:49.660 回答
2

我自己的速记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;
于 2012-05-10T21:36:04.340 回答