2011-09-02 12 views
0

これはJavaの基本ですが、申し訳ありませんが、私はstackoverflowでお願いします。演算子| int値の場合

eclipse RCPで例を挙げます。例えば、私はテキストのインスタンス(SWTテキスト)にしたい場合は、私は以下のだろう:2番目のパラメータテキストで

Text text = new Text(composite, SWT.BORDER | SWT.MULTI); 

を、それがint型のスタイルである、と私はテキストが境界線になりますでしょうし、することができマルチラインなので、SWT.BORDER | SWT.MULTI(演算子|が使用されます)。

ここで質問します。たとえば、TextクラスのgetStyle()メソッドで変数int型を既に追加しています。しかし、SWT.MULTIが既に設定されているかどうかを確認したいのですが、どうすればアーカイブできますか?ありがとう

+0

愚かな質問には存在しません:あなたはすでにSWT.MULTIでスタイル設定され、何かにSWT.MULTIを追加した場合のp –

答えて

3
bool multiIsSet = (x & SWT.MULTI) == SWT.Multi 
1

あなたの解決策は、ビットごとに&演算子です。

if (myText.getStyle() & SWT.MULTI){ 
//whatever 
} 
+0

はまた、それが何かを損傷することはありません。この記事を見て、SWTがどのようにビット演算子を使うのかを読んでください:http://en.wikipedia.org/wiki/Bitwise_operation – JSager

+4

そこに '!= 0'が必要です。 Javaの 'if'はブール式を必要とします。 – dlev

+0

はい、ありがとうございます。私はすでに前のコードでチェックしていますが、結果はSWT.MULTIを使用する場合は2(SWT.MULTIと同じ)、SWT.MULTIを使用しない場合は0です。それは正しい – Jef

関連する問題