tags:

views:

190

answers:

2

Is it possible to get the enumeration values from a Class? Let me elaborate this a bit. If I have an enum for example FooBar, then I can get the values of FooBar by calling FooBar.values() which will return an array with the enumerations (FooBar[]). My problem is, that I have a method which takes as an input parameter a class (Class c) and within the method I check whether or not it is an enum (c.isEnum()). If it is an enum, I would need to somehow get the enum values, the problem is that I don't know quite how to do this, I'm not even totally sure it is possible. So, is it possible and if it is, how can I accomplish this? (Note that the solution needs to be generic, in other words not if-else's).

+7  A: 

Um... have you looked at the API doc?

Class.getEnumConstants()

Michael Borgwardt
Yes, a couple of times and I somehow just kept missing that method o_O
Kim L
Just to add an example how to use it: http://java.sun.com/docs/books/tutorial/reflect/special/enumMembers.html
Kosi2801
A: 

Edited: You can use c.getClass().getEnumConstants() to get the values of the constants

(it said 'names' instead of 'values' and added some unnecessary stuff)

Confusion
Wrong. getEnumConstants() returns the values, not the names - and they're even typed through generics if the class object is, though that probably does not apply in this case.
Michael Borgwardt
Ah, I thought I just tested that, but there's a bug in my quick'n dirty test; sorry about that.
Confusion