すべてのenumはインターフェイスEnumを実装しているので、このようにenumを返すメソッドを作成できます。しかし、このメソッドは単一のenum値を返します。 enum全体を含む包括的な値を返す方法はありません(クラスを返すこととリフレクションを行うことは別です)。しかし、私が思っているものは多かれ少なかれ、すべての列挙型の値を返すことができます。このアプローチの
enum Resources { ONE, TWO, THREE }
private Enum<?>[] resources() {
return Resources.values();
}
1つの利点は、あなたがより返却または、例えば以下の値ができます:
enum Resources { ONE, TWO, THREE }
enum MoreResources { UN, DEUX, TROIS }
private Enum<?>[] resources() {
List<Enum<?>> resources = new ArrayList<Enum<?>>();
resources.addAll(Arrays.asList(Resources.values());
resources.addAll(Arrays.asList(MoreResources.values());
return resources.toList(new Enum<?>[] {});
}
よりタイプセーフであっても、より良いアプローチは、関心 の列挙型は、共通のインタフェースを実装することです例えば
さらに多くの機能を提供するために、インターフェイスにメソッドを追加できます。
'Enum'型または' Enum'値を返したいのですか? – jjnguy
質問のタイトルが最も適切であるかどうかわかりません。あなたは実際に何をしたいですか? –
混乱して申し訳ありませんが、私は確信していると誤解する可能性があります(私の考えは午後遅くに始まります)が、私は方法が一般的な列挙型*メンバーではない*列挙から –