Несколько флагов в одном значении int - PullRequest
7 голосов
/ 18 июня 2009

У меня есть переменная int, которая содержит несколько флагов, например:

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

Я могу проверить наличие флага

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

Как очистить значение флага от styles, т.е. динамически удалить ExpandableComposite.EXPANDED, не зная точных флагов, установленных в styles?

1 Ответ

11 голосов
/ 18 июня 2009

это старая идиома C, все еще работающая на Java:

styles &= ~ExpandableComposite.EXPANDED;

Однако в эти дни (> = Java 1.5) вы должны рассмотреть возможность использования:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...