I'd like to pass any enum to a function and use the values array. But, since that method is not inherited, I can't find a way to do that.
Right now I'm accomplishing this by looping through the enum in the code that calls this, building an ArrayList<String>, and passing that to an appropriate constructor. But, I'd rather not require users to do the prep work if it can be avoided.
I think that I could use a Class object with reflection to find the values method, but would then need to figure out what the right class declaration type parameter is, and what the right constructor parameter type is, so that I could limit it to enums.
Kevin Workman wrote:Why don't you just pass the Enum array returned from the values() method?
Because that doesn't seem very user-friendly if I'm providing a tool as part of an API. For the task "I'd like a set of radio buttons (or a combobox) representing all the options in an Enum", it seems most natural to pass the enum class itself.
I finally did get a version that worked, using java.util.EnumSet: