是不是就不可能有一个未定义的类型参数e扩展泛型类型:为什么所有的枚举扩展Enum <e>
class Foo extends enum<E>
他们如何扩大呢?
编辑:也在哪里的values()方法定义?
在此先感谢
是不是就不可能有一个未定义的类型参数e扩展泛型类型:为什么所有的枚举扩展Enum <e>
class Foo extends enum<E>
他们如何扩大呢?
编辑:也在哪里的values()方法定义?
在此先感谢
这的确是非法使用未定义的类型参数来扩展泛型类型。然而,枚举不这样做。如果你正在反编译一些java代码,并在那里看到一个<E>
(并且你的枚举类型没有命名为E
),你的反编译器不能正确地处理泛型。
一个枚举暗含延伸Enum<YourEnumType>
。也就是说,编译器隐式生成class YourEnumType extends Enum<YourEnumType>
。通过向下传递自己的类型,它允许Enum
的compareTo
和valueOf
函数拒绝来自不同类型的enum
的值。
你从哪里得到? 'Foo'应该扩展'Enum '。 –
bdonlan
2012-04-22 02:00:40
当它创建enum类型的枚举时,是否隐式定义e? – rubixibuc 2012-04-22 02:01:57
这里是java.lang.Enum的来源,如果有帮助:http://www.docjar.com/html/api/java/lang/Enum.java.html – Thilo 2012-04-22 02:02:56