【发布时间】:2018-01-29 15:16:37
【问题描述】:
我有一个枚举:
public enum ScopeItems {
BASIC_INFO, POLICY_INFO, USER_INFO
};
我有许多 Auth 对象,它们可能包含这些范围的任意组合。
我想要做的是根据 Auth 对象持有的这些范围项中的哪一个来分配一个整数值。
例如假设:
BASIC_INFO = 1; POLICY_INFO = 2; USER_INFO = 4;
如果我有一个整数值 5,那么我想返回一个数组:
BASIC_INFO, USER_INFO
我还希望它反向工作,所以如果我传入一个 POLICY_INFO、USER_INFO 数组,我会得到 6 个返回。
我已经完成了这项工作,但我的解决方案似乎有点太复杂了。我敢肯定,我没有想到有更好的方法。
【问题讨论】:
-
你尝试了什么?
-
适合使用的是EnumSet。
-
Еnum 是一个对象。将字段
int value添加到枚举类,并创建一个构造函数:ScopeItems(int I){ this.value = I;}->BASIC_INFO(1), POLICY_INFO(2), USER_INFO(4)...您可以添加类似public int getValue(){...}的方法。