我想写一个泛型方法来初始化一个EnumSet值从一个包含位掩码的整数。我收到一个编译器错误,我不明白。这里是我的代码:我的泛型EnumSet方法 - 无法访问Enum.values()
private <E extends Enum<E>> void setEnumSet(EnumSet<E> es, int iEnum) {
es.clear();
for (E e : E.values()) {
if (0 != (iEnum & (1<<e.ordinal()))) {
es.add(e);
}
}
}
编译器错误:
1>Javac...
1>.\wdqapi.java:266: error: cannot find symbol
1> for (E e : E.values()) {
1> ^
1> symbol: method values()
1> location: class Enum<E>
1> where E is a type-variable:
1> E extends Enum<E> declared in method <E>_setEnumSet(EnumSet<E>,int)
是否有访问高值e()方法的一些特殊的语法? (我是Java noob。)有人可以帮我解决这个编译器错误吗?谢谢。
谢谢,约翰。我以传入值数组的方式去了。似乎多余,但它完成了工作。 tyvm - 特别是对于及时性! :) – jbirkel 2013-03-05 18:34:04