Le enumerazioni Java possono essere unite (come Bitwise in C #)?
Domanda
Esiste un modo in Java per dichiarare un'enumerazione i cui valori possono essere usati insieme? Ad esempio:
enum FileAccess { Read, Write, ReadWrite }
È possibile definire ReadWrite come Leggi | Scrivi
(o qualsiasi altra cosa che produrrebbe lo stesso risultato)?
Soluzione
Si utilizza EnumSet :
EnumSet<FileAccess> readWrite = EnumSet.of(FileAccess.Read, FileAccess.Write);
Questo è in realtà un po 'più elegante del modo C # /. NET, IMO - a parte qualsiasi altra cosa, puoi facilmente distinguere tra un set e un singolo valore.
Altri suggerimenti
Vedi EnumSet che ti consente per farlo in modo efficiente:
EnumSet<FileAccess> set = EnumSet.of(READ, WRITE);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow