簡體   English   中英

為什么Enum聲明中的type參數包含遞歸類型邊界?

[英]Why the type parameter in Enum declaration contains recursive type bounds?

  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>>

Enum<E extends Enum<E>>正在定義E並限制其類型。

到您到達Comparable<E> ,現在已定義E因此您無需進一步限定它。

Comparable<<E> extends Comparable<E>>只是愚蠢的。 如果您的意思是類似Comparable<E extends Enum<E>>那么您將不需要它,因為E已被定義和過濾。 此時,您現在要通知用戶更多有關此類對象的功能,即它們實現Comparable<E>接口。

Enum類型具有遞歸類型界限,因為它們是遞歸類型,即enum 其自身的Enum (請注意大小寫差異)。

可能不希望將Comparable的泛型類型參數綁定到特定類型,而Enum必須綁定到擴展Enum的類型。

它也是Comparable<E extends Comparable<E>> Comparable<E>Comparable<E extends Enum<E>>相同,原因是E extends Enum<E> ,由於繼承, Enum<E>Comparable<E>相同。 因此, Comparable<E>相同的Comparable<E> Comparable<E extends Comparable<E>>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM