1

用未定义的类型参数扩展泛型类型不是不可能的吗:

class Foo extends enum<E>

他们如何扩展它?

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

提前致谢

4

1 回答 1

5

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

枚举隐式扩展Enum<YourEnumType>。也就是说,编译器隐式生成一个class YourEnumType extends Enum<YourEnumType>. 通过传递自己的类型,它允许Enum'compareTovalueOf函数拒绝来自不同类型enums 的值。

于 2012-04-22T02:07:20.507 回答