Enum から使用可能なすべての値を使用してジェネリック クラスを初期化しようとしています。これが私がそれをどのように機能させたいかです:
public class MyClass<E extends Enum<E>> {
E[] choices;
public MyClass() {
choices = E.values();
}
E.values
ただし、このメソッドはこの E に対して定義されていないため、Eclipse ではへの呼び出しは受け入れられません。
代わりにこのコンストラクターを使用することは受け入れられますが、呼び出し元が値を提供する必要があります。
public MyClass(E[] e) {
choices = e;
}
私が見つけたドキュメントで:
Java プログラミング言語の列挙型は、他の言語の対応するものよりもはるかに強力です。enum 宣言は、クラス (enum 型と呼ばれます) を定義します。enum クラス本体には、メソッドやその他のフィールドを含めることができます。コンパイラは、列挙型を作成するときに、いくつかの特別なメソッドを自動的に追加します。たとえば、宣言されている順序で列挙型のすべての値を含む配列を返す静的値メソッドがあります。
この問題を回避する方法はありますか?