15

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).

2 Answers 2

28

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

Class.getEnumConstants()

Sign up to request clarification or add additional context in comments.

2 Comments

Yes, a couple of times and I somehow just kept missing that method o_O
Just to add an example how to use it: java.sun.com/docs/books/tutorial/reflect/special/…
0

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)

2 Comments

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.
Ah, I thought I just tested that, but there's a bug in my quick'n dirty test; sorry about that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.