2009-06-09 10 views
11

クラスから列挙値を取得することは可能ですか?私は少しこれを詳しく説明しましょう。たとえばFooBarなどの列挙型がある場合は、列挙型(FooBar [])の配列を返すFooBar.values()を呼び出してFooBarの値を取得できます。私の問題は、入力パラメータとしてクラス(クラスc)を取り、メソッド内でそれがenum(c.isEnum())であるかどうかをチェックするメソッドがあるということです。列挙型の場合は、何とか列挙型の値を取得する必要があります。問題は、これを行う方法がわかりません。可能であるかどうかは完全にはわかりません。だから、それが可能なのか、そうであれば、これをどのように達成するのだろうか? (ソリューションは一般的なものでなければならないことに注意してください。言い換えれば、if-elseのものではありません)。クラスから列挙値を取得

答えて

22

ええと...あなたはAPIのドキュメントを見ましたか?編集

Class.getEnumConstants()

+1

はい、数回と私は何とかその方法が欠けていましたo_O –

+1

それを使用する方法の例を追加するだけです:http://java.sun.com/docs/books/tutorial/reflect/special/ enumMembers.html – Kosi2801

0

:あなたはc.getClass()を使用することができますgetEnumConstants()定数

の値を取得する(それは「名前」の代わりに「値」を言ったし、いくつかの不要なものを追加しました)

+0

間違っています。 getEnumConstants()は名前ではなく値を返します。クラスオブジェクトの場合はジェネリックでも型付けされますが、この場合はおそらく適用されません。 –

+0

ああ、私はちょうどそれをテストしたと思ったが、私のquick'n汚いテストにバグがある。申し訳ありません。 – Confusion

関連する問題