limitations on using enum as generic parameter
I am playing around with using enums and generics together in Java 1.5
(yes, I know it's in end-of-life, but it would be a bit of trouble
right now to go to 1.6 let alone 1.7). Having figured out some simple
situations, I tried writing a generic class that takes an enum as a
type parameter. Unfortunately I don't seem to be able to invoke the
enum's values() method -- javac says "Cannot find symbol: method
values()". (the reference to Enum.valueof later also gets errors,
which is why I commented it out to simplify the test).
Is there any way around this, or is there just no way to refer to an
enum's values() method when the enum is a generic parameter?
Here's the code; interface MessageCode should be irrelevant because it
could be any old interface for the purposes of this example:
public class EnumCodeSet<E extends Enum & MessageCode>
// implements MessageCodeSet
{
private E[] enums;
public EnumCodeSet() {
enums = E.values();
}
public MessageCode get(int index)
throws IndexOutOfBoundsException
{
return enums[index];
} // get
public MessageCode valueOf(String name)
throws IllegalArgumentException, NullPointerException
{
// return Enum.valueof(E,name);
} //
} // end class EnumCodeSet