我有一个包含多个标志的int变量,例如:

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

我可以测试标志的存在
boolean expanded = (styles & ExpandableComposite.EXPANDED) != 0;

如何在不知道styles中设置的确切标志的情况下,从ExpandableComposite.EXPANDED中清除标志的值,即动态删除styles

最佳答案

这是一个古老的C惯用法,仍在Java中运行:

styles &= ~ExpandableComposite.EXPANDED;

但是,这些天(> = Java 1.5)应该考虑使用:
  • Enum (请参阅Tutorial)
  • EnumSet
  • EnumMap
  • 07-24 21:31