可以合并Java枚举(如C#中的Bitwise)吗?

Hos*_*Aly 15 java enums

Java中是否有一种方法可以声明其值可以一起使用的枚举?例如:

enum FileAccess { Read, Write, ReadWrite }
Run Code Online (Sandbox Code Playgroud)

是否可以将ReadWrite定义为Read | Write(或产生相同结果的任何东西)?

Jon*_*eet 23

您使用EnumSet:

EnumSet<FileAccess> readWrite = EnumSet.of(FileAccess.Read, FileAccess.Write);
Run Code Online (Sandbox Code Playgroud)

这实际上比C#/ .NET方式更优雅,IMO - 除了其他任何东西,你可以很容易地区分集合和单个值.

  • 但是这会给你一个Set,而不是Enum,或者你可以存储在数据库中的整数(比如Enum.ordinal()). (4认同)