tags:

views:

81

answers:

1

I have a int variable which hold multiple flags, for instance:

int styles = ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED;

I can test the presence of a flag

boolean expanded = (styles & ExpandableComposite.EXPANDED) != 0;

How can I clear the value of a flag from styles, i.e. dynamically remove ExpandableComposite.EXPANDED, without knowing the exact flags which are set in styles?

+7  A: 

this is an old C idiom, still working in Java:

styles &= ~ExpandableComposite.EXPANDED;

However these days (>= Java 1.5) you should consider using Enum and EnumSet.

dfa
Thank you, works great. And yes, I would be using EnumSet but I'm working against an API - Eclipse - which needs to support 1.4 .
Robert Munteanu