Можно ли объединить перечисления Java (как побитовые в C #)? - PullRequest
15 голосов
/ 02 января 2009

Есть ли в Java способ объявить перечисление, значения которого могут использоваться вместе? Например:

enum FileAccess { Read, Write, ReadWrite }

Можно ли определить ReadWrite как Read | Write (или что-либо, что даст тот же результат)?

Ответы [ 2 ]

23 голосов
/ 02 января 2009

Вы используете EnumSet :

EnumSet<FileAccess> readWrite = EnumSet.of(FileAccess.Read, FileAccess.Write);

Это на самом деле несколько более элегантно, чем в C # /. NET, IMO - помимо всего прочего, вы можете легко отличить набор от одного значения.

4 голосов
/ 02 января 2009

См. EnumSet , который позволяет вам сделать это эффективно:

EnumSet<FileAccess> set = EnumSet.of(READ, WRITE);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...