0

重複の可能性:
Java のショートカット「or-代入」(|=) 演算子

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はなく非短絡ですが、私自身との略記と私に割り当てます。|| =がないため、割り当ての短いバージョンとして利用できるため、または:ingはブール値で使用されることがあります。ただし、重要な注意:この場合、retValueがすでに呼び出されている場合でも、両方のメソッドが呼び出されます。orortrue

したがって、同等の(論理的に)ステートメントは複数になる可能性がありますが、いくつかは次のようになります。

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 に答える