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型は再帰型であるため、再帰型の境界があります。つまり、anenum Enumそれ自体です(大文字と小文字の違いに注意してください)。

于 2013-02-28T09:53:27.727 に答える
0

それComparable<E extends Comparable<E>>もです。原因Comparable<E>と同じであり、継承によるものと同じです。したがって、Comparable<E extends Enum<E>>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 に答える