Can Java Enumerations ser mescladas (como Bitwise em C #)?
Pergunta
Existe uma maneira em Java para declarar uma enumeração cujos valores podem ser usados ??juntos? Por exemplo:
enum FileAccess { Read, Write, ReadWrite }
É possível definir ReadWrite como Read | Write
(ou qualquer coisa que possa produzir o mesmo resultado)?
Solução
Você pode usar EnumSet :
EnumSet<FileAccess> readWrite = EnumSet.of(FileAccess.Read, FileAccess.Write);
Este é realmente um pouco mais elegante do que o C maneira NET # /, IMO -.. Além de qualquer outra coisa, você pode facilmente distinguir entre um conjunto e um valor único
Outras dicas
EnumSet que permite para fazer isso de forma eficiente:
EnumSet<FileAccess> set = EnumSet.of(READ, WRITE);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow