Robert Munteanu Robert Munteanu - 3 months ago 15
Java Question

Multiple flags in one int value

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
?

dfa dfa
Answer

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

styles &= ~ExpandableComposite.EXPANDED;

However these days (>= Java 1.5) you should consider using: