为什么所有枚举都扩展枚举<e> </e>

时间:2012-04-22 01:56:19

标签: java enums

使用未定义的类型参数ex:

扩展泛型类型是不是不可能
class Foo extends enum<E>

他们如何扩展它?

编辑还在哪里定义了values()方法?

提前致谢

1 个答案:

答案 0 :(得分:5)

使用未定义的类型参数扩展泛型类型确实是非法的。但是,枚举不会这样做。如果您正在反编译一些java代码并在那里看到<E>(并且您的枚举类型未命名为E),则您的反编译器不会正确处理泛型。

enum隐式扩展Enum<YourEnumType>。也就是说,编译器隐式地生成class YourEnumType extends Enum<YourEnumType>。通过传递自己的类型,它允许Enum的{​​{1}}和compareTo函数拒绝来自不同类型valueOf的值。