我有兩個使用通配符泛型的方法示例。第一個例子:public static <T extends Comparable> T findMax(List<T> list)第二個例子:public static <T extends Comparable<? super T>> T findMax(List<? extends T> list)我想知道這兩個例子是否多余。如果是,為什么?
2 回答

呼喚遠方
TA貢獻1856條經(jīng)驗 獲得超11個贊
這兩個示例告訴您不同的事情,因此它們并不多余,它們提供了不同的信息并以不同的方式限制類型。
public static <T extends Comparable> T findMax(List<T> list)
在此示例中,您告訴T
變量可以是實現(xiàn)或擴展的任何類型Comparable
(如果它是類或接口)
public static <T extends Comparable<? super T>> T findMax(List<? extends T> list)
在此示例中,您告訴類型T
應(yīng)該擴展可比較的類型,并且還告訴類型必須是(內(nèi)部可比較的)的超類,但它可以是列表中的T
子類型。T

鴻蒙傳說
TA貢獻1865條經(jīng)驗 獲得超7個贊
兩個通配符都有所不同。
第一個表示 T 或 T 的超類型必須實現(xiàn) Comparable 接口。第二個說你可以使用 T 類型或 T 子類型的對象列表。
添加回答
舉報
0/150
提交
取消