2009-06-18 29 views
6

Tôi có một biến int mà giữ nhiều cờ, ví dụ:Nhiều cờ trong giá trị một int

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

tôi có thể kiểm tra sự hiện diện của một lá cờ

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

Làm thế nào tôi có thể xóa giá trị của một lá cờ từ styles, tức là xóa động ExpandableComposite.EXPANDED, mà không biết các cờ chính xác được đặt trong styles?

Trả lời

10

đây là một C thành ngữ cũ, vẫn làm việc trong Java:

styles &= ~ExpandableComposite.EXPANDED; 

Tuy nhiên những ngày này (> = Java 1.5), bạn nên xem xét sử dụng:

+0

Cảm ơn bạn, hoạt động tuyệt vời. Và có, tôi sẽ sử dụng EnumSet nhưng tôi đang làm việc chống lại một API - Eclipse - cần hỗ trợ 1.4. –

Các vấn đề liên quan