0
  public abstract class Enum<E extends Enum<E>>
            implements Comparable<E>, Serializable {
     // All code goes here

    }

在上面的代码中,为什么 的类型参数存在递归类型绑定,Enum以及为什么包含Comparable<E>. 换句话说,为什么它是Comparable<E>而不是Comparable<E extends Comparable<E>>

4

3 回答 3

5

Enum<E extends Enum<E>>是定义E和限制它的类型。

到您到达的时间Comparable<E> E现在已定义,因此您无需进一步限定它。

Comparable<<E> extends Comparable<E>>会很傻。如果你的意思是这样的,Comparable<E extends Enum<E>>那么你就不需要它,因为E已经定义和过滤了。在这一点上,您现在正在告诉用户更多关于这个类的对象做什么,即他们实现了Comparable<E>接口。

Enum类型具有递归类型边界,因为它们是递归类型,即 an本身enum 就是Enum一个(注意大小写差异)。

于 2013-02-28T09:53:27.727 回答
0

Comparable<E extends Comparable<E>>也是。Comparable<E>Comparable<E extends Enum<E>>cause相同E extends Enum<E>Enum<E>Comparable<E>由于继承相同。因此Comparable<E>等同于Comparable<E extends Comparable<E>>

于 2013-02-28T10:01:04.293 回答
0

可能不需要将 的泛型类型参数绑定Comparable到特定类型,而Enum必须将 绑定到扩展类型Enum

于 2013-02-28T09:55:11.367 回答