[解決済み] |=」とはどういう意味ですか?(パイプイコール演算子)
2022-03-03 21:12:41
質問
Google検索やStack Overflowで検索してみたのですが、検索結果が表示されません。オープンソースのライブラリのコードで見たことがあります。
Notification notification = new Notification(icon, tickerText, when);
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;
"|="は何を意味するのでしょうか(
pipe equal operator
を意味します。
どのように解決するのですか?
|=
と同じように読み取ります。
+=
.
notification.defaults |= Notification.DEFAULT_SOUND;
と同じです。
notification.defaults = notification.defaults | Notification.DEFAULT_SOUND;
ここで
|
はビット単位のOR演算子です。
すべての演算子を参照する こちら .
ビット演算子が使われているのは、よくあることですが、これらの定数によってint型にフラグを持たせることができるからです。
もし、あなたが 見る を見ると、これらの定数は2の累乗であることがわかる。
public static final int DEFAULT_SOUND = 1;
public static final int DEFAULT_VIBRATE = 2; // is the same than 1<<1 or 10 in binary
public static final int DEFAULT_LIGHTS = 4; // is the same than 1<<2 or 100 in binary
つまり、ビット単位のORでフラグを追加することができるのです
int myFlags = DEFAULT_SOUND | DEFAULT_VIBRATE; // same as 001 | 010, producing 011
だから
myFlags |= DEFAULT_LIGHTS;
は、単にフラグを追加することを意味します。
また、対称的に、フラグが設定されていることをテストするために
&
:
boolean hasVibrate = (DEFAULT_VIBRATE & myFlags) != 0;
関連
-
[解決済み】Java JDK - doubleからintへの非可逆変換の可能性
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Javaパッケージが存在しないエラー
-
[解決済み】Android Studio クラス org.codehaus.groovy.runtime.InvokerHelper を初期化できませんでした。
-
[解決済み】エラー「No enclosing instance of type Foo is accessible」の原因と修正方法について教えてください。
-
[解決済み] 二項演算子「&」のオペランド型がおかしい java
-
[解決済み】Javaの部分文字列:「文字列のインデックスが範囲外」。
-
[解決済み】なぜjava.io.Fileにはcloseメソッドがないのでしょうか?
-
[解決済み】メソッド本体がない、またはJavaで抽象的な宣言をする
-
[解決済み】ソースルート外のJavaファイル intelliJ
-
[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。
-
[解決済み] [Solved] java.lang.NoClassDefFoundError: クラスXXXを初期化できませんでした。