通常,当类实现Comparable
时,类型变量T
是类名,例如,String
实现Comparable<String>
,Long
实现{ {1}},Comparable<Long>
实施Date
,然后为什么Comparable<Date>
实施Enum
而不是Comparable<E>
?
答案 0 :(得分:2)
E
已经是Enum<E>
。
它不能Enum<E>
,因为它意味着任何Enum<E>
具有可比性,只有E
是可接受的。
答案 1 :(得分:0)
这是因为enum
类被定义为
public abstract class Enum<E extends Enum<E>> ...
因此E
已经是Enum<E>
,并且实施Comparable<E>
已经隐含了Enum
部分。
您可能希望查看this question以获取有关它以递归方式声明的原因的更多信息(因为它确实会伤害大脑)。