我想寫一個泛型方法來初始化一個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