我需要这样的东西:
public enum Enum { ENUM1<Class1>(Class1.class,"A DESCRIPTION",new Class1()),ENUM2<Class2>(Class2.class,new Class2()),ENUM3<Class3>(Class3.class,new Class3()); private Enum(Class<? extends Object> clazz,String description,Object instance) {} }
我需要的:
我定义所有ClassX的不同实例的单个地方(它们扩展了相同的ClassSuper).当然,我可以为每个ClassX定义不同的枚举,但这不是我想要的.
解决方法
JLS不允许枚举的类型参数:
EnumDeclaration: ClassModifiers(opt) enum Identifier Interfaces(opt) EnumBody EnumBody: { EnumConstants(opt),(opt) EnumBodyDeclarations(opt) }