2011-09-02 62 views
0

我认为这是一个基本的Java,但对不起,我要求在stackoverflow。运算符|为int值

我将在eclipse RCP中给出一个例子。例如,如果我想使文本(SWT文字)的情况下,我会在下面做:

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

在第二个参数的文本,它是一个INT风格,我想文会边框和可多行,所以我添加SWT.BORDER | SWT.MULTI(将使用操作符|)。

现在的问题,例如我添加已经有一个变量int类型的方法getStyle()在Text类中。但是我想检查一下SWT.MULTI是否已经设置好了,我如何存档它?谢谢

+0

愚蠢的问题永远存在:对 –

回答

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

您的解决方案是按位运算符&。

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

此外,如果添加SWT.MULTI的东西,已经铺有SWT.MULTI它不会破坏任何东西。看看这篇文章,并阅读SWT如何使用按位运算符:http://en.wikipedia.org/wiki/Bitwise_operation – JSager

+4

您需要一个'!= 0'在那里。 '如果Java中的'需要一个布尔表达式。 – dlev

+0

是的,谢谢。我已经用上面的代码检查过了,但是当我使用SWT.MULTI时,结果是2(与SWT.MULTI相同),当不使用SWT.MULTI时结果为0。这是正确的 – Jef