[解決済み】"|="の意味は何ですか?(パイプ等号演算子)
2022-01-20 11:26:30
質問
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 'jar'が内部コマンドまたは外部コマンドとして認識されない。
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー:'if'のない'else'エラー
-
[解決済み】StringUtils.isBlank() vs String.isEmpty()
-
[解決済み】エラー。Selection does not contain a main type
-
[解決済み】Java、"変数名 "を変数に解決することができない
-
[解決済み】Javaでユーザー入力を待機させる方法
-
[解決済み] intellijが自動配線リポジトリにタイプのBeanが見つからないと不正確な発言をする件
-
[解決済み】スレッド "main "での例外 java.util.NoSuchElementException
-
[解決済み】Ubuntu: OpenJDK 8 - パッケージを見つけることができません。
-
[解決済み】Javaの".class expected "について
-
[解決済み】Java: GZIPInputStreamの作成に失敗しました。GZIP形式ではありません