使用未定义的类型参数ex:
扩展泛型类型是不是不可能class Foo extends enum<E>
他们如何扩展它?
编辑还在哪里定义了values()方法?
提前致谢
答案 0 :(得分:5)
使用未定义的类型参数扩展泛型类型确实是非法的。但是,枚举不会这样做。如果您正在反编译一些java代码并在那里看到<E>
(并且您的枚举类型未命名为E
),则您的反编译器不会正确处理泛型。
enum隐式扩展Enum<YourEnumType>
。也就是说,编译器隐式地生成class YourEnumType extends Enum<YourEnumType>
。通过传递自己的类型,它允许Enum
的{{1}}和compareTo
函数拒绝来自不同类型valueOf
的值。