2009-06-18 12 views
6

Ho una variabile int che detengono più flag, per esempio:più flag di valore uno int

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

posso verificare la presenza di una bandiera

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

Come posso cancellare il valore di una bandiera da styles, ovvero rimuovere dinamicamente ExpandableComposite.EXPANDED, senza conoscere i flag esatti impostati in styles?

risposta

10

questo è un vecchio linguaggio C, ancora lavorando in Java:

styles &= ~ExpandableComposite.EXPANDED; 

Tuttavia in questi giorni (> = Java 1.5) si dovrebbe considerare l'utilizzo di:

+0

Grazie, funziona alla grande. E sì, userei EnumSet ma sto lavorando contro un'API - Eclipse - che deve supportare 1.4. –

Problemi correlati