<T extends Comparable<T>>
和 <T extends Comparable<? super T>>
有什麼不同
<T extends Comparable<T>>
類型 T 必須實現 Comparable
接口,並且這個接口的類型是 T。只有這樣,T 的實例之間才能相互比較大小。例如,在實際調用時若使用的具體類是 Dog,那麼 Dog 必須 implements Comparable<Dog>
<T extends Comparable<? super T>>
類型 T 必須實現 Comparable
接口,並且這個接口的類型是 T 或 T 的任一父類。這樣聲明後,T 的實例之間,T 的實例和它的父類的實例之間,可以相互比較大小。例如,在實際調用時若使用的具體類是 Dog (假設 Dog 有一個父類 Animal),Dog 可以從 Animal 那裏繼承 Comparable<Animal>
,或者自己 implements Comparable<Dog>
。