Можно ли объединить перечисления Java (например, побитово в C #)?
Вопрос
Есть ли в Java способ объявить перечисление, значения которого можно использовать вместе?Например:
enum FileAccess { Read, Write, ReadWrite }
Можно ли определить ReadWrite как Read | Write
(или что-нибудь, что дало бы тот же результат)?
Решение
Вы используете Перечисляющий набор:
EnumSet<FileAccess> readWrite = EnumSet.of(FileAccess.Read, FileAccess.Write);
На самом деле это несколько более элегантно, чем способ C # / .NET, IMO - помимо всего прочего, вы можете легко отличить set от одного значения.
Другие советы
Видишь Перечисляющий набор что позволяет вам делать это эффективно:
EnumSet<FileAccess> set = EnumSet.of(READ, WRITE);
Не связан с StackOverflow