我需要这样的东西:
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) {}
}
我需要的是:在一个地方定义所有classx的不同示例(它们扩展相同的classsuper)。当然,我可以为每个classx定义不同的枚举,但这并不是我真正想要的。
3条答案
按热度按时间mnemlml81#
您可以编写以下代码来保存所有相同的信息(因为类可以从类中获得)
您将发现的问题是,使用枚举时,泛型没有那么有用,而且您可以在没有泛型的情况下编写大致相同的行为。
bkkx9g8r2#
jls不允许枚举的类型参数:
7ajki6be3#
枚举实际上可以有字段,看起来这就是您想要的:
据我所知,枚举不能被参数化,所以你不能在你的代码。你到底想用这些课程做什么?我可能误解了你的问题