一个int值中的多个标志

Rob*_*anu 7 java eclipse

我有一个int变量,它包含多个标志,例如:

int styles = ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED;
Run Code Online (Sandbox Code Playgroud)

我可以测试一个标志的存在

boolean expanded = (styles & ExpandableComposite.EXPANDED) != 0;
Run Code Online (Sandbox Code Playgroud)

如何在不知道设置的确切标志的情况下styles清除标志的值,即动态删除?ExpandableComposite.EXPANDEDstyles

dfa*_*dfa 11

这是一个古老的C语言,仍然在Java中工作:

styles &= ~ExpandableComposite.EXPANDED;
Run Code Online (Sandbox Code Playgroud)

但是这些天(> = Java 1.5)你应该考虑使用: