2012年8月21日火曜日

何コレ?Javaの演算子「~」

Androidでこんなコードが出てきた。

Intent intent = bundle.getParcelable(AccountManager.KEY_INTENT);
intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_NEW_TASK);

問題は「~Intent.FLAG_ACTIVITY_NEW_TASK」の「~」。

長年Javaプログラミングをしてきたつもりだけど、こんなの見たことない。何コレ?

Intent.FLAG_ACTIVITY_NEW_TASKはintなので、ビット演算子かなぁとは思ったけど・・・

Java 基礎知識( 演算子 )【 Okapi Project 】

ビット反転の演算子だって。他のビット演算子は知ってたし実際に使っても来たけど、これは知らなんだ。

intのビット反転をする必要を感じたことなかったもんなぁ・・・まだまだ未熟者だわ。