[英]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.