Java Enums values with Generics
enums, generics, java
Solution
JLS does not allow type parameters for an enum:
EnumDeclaration:
ClassModifiers(opt) enum Identifier Interfaces(opt) EnumBody
EnumBody:
{ EnumConstants(opt) ,(opt) EnumBodyDeclarations(opt) }
Problem
I need something like this: ``` public enum Enum { ENUM1<Class1>(Class1.class, "A DESCRIPTION", new Class1()), ENUM2<Class2>(Class2.class, "A DESCRIPTION", new Class2()), ENUM3<Class3>(Class3.class, "A DESCRIPTION", new Class3()); private Enum(Class<? extends Object> clazz, String description, Object instance) {} } ``` What I need: a single place where I define different instances of all ClassX (they extend the same ClassSuper). Of course I could define different Enums for every ClassX, but this is not really what I want.