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

时间:2009-01-02 13:54:05

标签: java enums

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

enum FileAccess { Read, Write, ReadWrite }

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

2 个答案:

答案 0 :(得分:23)

您使用EnumSet

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

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

答案 1 :(得分:4)

请参阅EnumSet,以便您有效地执行此操作:

EnumSet<FileAccess> set = EnumSet.of(READ, WRITE);