java有没像.net中的那种方法,
比如说有一个枚举,里面有4个元素 a=1,b=2,c=4,d=8
如果我在一个方法里面要获取枚举元素的时候给他一个值,如果这个值是3它就返回a,b;如果是7他就返回a,b,c!!!急。。知道请回答下!谢谢
比如说有一个枚举,里面有4个元素 a=1,b=2,c=4,d=8
如果我在一个方法里面要获取枚举元素的时候给他一个值,如果这个值是3它就返回a,b;如果是7他就返回a,b,c!!!急。。知道请回答下!谢谢
java.util
类 EnumMap<K extends Enum<K>,V>
java.lang.Object
java.util.AbstractMap<K,V>
java.util.EnumMap<K,V>
所有已实现的接口:
Serializable, Cloneable, Map<K,V> --------------------------------------------------------------------------------public class EnumMap<K extends Enum<K>,V>extends AbstractMap<K,V>implements Serializable, Cloneable与枚举类型键一起使用的专用 Map 实现。枚举映射中所有键都必须来自单个枚举类型,该枚举类型在创建映射时显式或隐式地指定。枚举映射在内部表示为数组。此表示形式非常紧凑且高效。
public static <E extends Enum<E>> EnumSet<E> enumMask(final Class<E> c, final int mask) {
final List<E> list = new ArrayList<E>();
int dig = mask;
for (E e : c.getEnumConstants()) {
if (dig % 2 > 0) {
list.add(e);
}
dig >>= 1;
}
return EnumSet.copyOf(list);
}//调用
for (XXXEnum e : enumMask(XXXEnum.class, 7)) {
System.out.println(e);
}