Multiple flags in one int value

eclipse, java

Solution

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

styles &= ~ExpandableComposite.EXPANDED;

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

- `Enum` (see Tutorial)

- `EnumSet`

- `EnumMap`

Problem

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`?

Original source