изучаю джаву.
Как в ней принято использовать битмаски?
ну то есть если я в C написал бы
enum E {
LEFT = 1,
HIGH = 2,
EVIL = 4
};
E e = (E)(HIGH | EVIL);
какие аналоги есть в java. EnumSet это то?
Здравствуйте, dilmah, Вы писали:
D>ну то есть если я в C написал бы
D>D>enum E {
D> LEFT = 1,
D> HIGH = 2,
D> EVIL = 4
D>};
D>E e = (E)(HIGH | EVIL);
D>
Даже интересно, и что бы вы получили в С ? Значение для 6 у вас неопределено
Здравствуйте, dilmah, Вы писали:
D>изучаю джаву.
D>Как в ней принято использовать битмаски?
D>ну то есть если я в C написал бы
D>D>enum E {
D> LEFT = 1,
D> HIGH = 2,
D> EVIL = 4
D>};
D>E e = (E)(HIGH | EVIL);
D>
D>какие аналоги есть в java. EnumSet это то?
EnumSet это то, что вам надо, как я понимаю.
http://stackoverflow.com/questions/1987738/create-a-permission-bit-mask-in-java
http://dhruba.name/2008/12/31/effective-java-item-32-use-enumset-instead-of-bit-fields/
Здравствуйте, Chuprin, Вы писали:
Может я вопрос неправильно понял ? Автор не пытается определить имеет ли что — то состояние LEFT, HIGH, EVIL, он хочет получить новое состояние HIGH | EVIL, которое в его enum не определено
например
enum State {ONE(1), TWO(2), THREE(3)
final int state;
private State(int state) {
this.state = state;
}
}
THREE.state == ONE.state | TWO.state;