ビット マスクを含む整数から EnumSet 値を初期化する汎用メソッドを作成しようとしています。理解できないコンパイラ エラーが発生します。これが私のコードです:
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 の values() メソッドにアクセスするための特別な構文はありますか? (私は Java 初心者です。) 誰かがこのコンパイラ エラーを回避するのを手伝ってくれますか? ありがとう。