當使用Collections.sort(List<T> list)
時,與List<Employee>
,其中Employee
是一個不擴展的類Comparable
接口。仿製藥 - 收集分類方法
直到看見以下編譯錯誤
在類型
Collections
方法sort(List<T>)
不適用的參數(List<Employee>
)。
我不明白爲什麼T
應該實現Comparable
,它沒有任何地方sort
方法的方法參數指定。
更新:請停止downvoting。我一直認爲只有方法參數決定了作爲參數傳遞的內容,但我在方法簽名中看到了<T extends Comparable<? super T>>
,但在方法簽名中看不到它。訪問修飾符,靜態或不是,返回類型,方法的名稱是我知道的,但多餘的是什麼?
更新:我沒有意識到這一點:「所有的泛型方法聲明具有(<和>)由尖括號分隔的類型參數部分先於方法的返回類型」
是的,它是:['public static> void sort(List list)'](https://docs.oracle。com/javase/7/docs/api/java/util/Collections.html#sort%28java.util.List%29) –
resueman
作爲一般規則,如果您無法手動執行某些操作(即使緩慢:)),那麼計算機也是如此。所以記住這一點:如果我給了你一個FooBars的列表,並且沒有關於FooBar的信息,並要求你對它們進行排序 - 你會怎麼做?這兩個答案是爲了讓FooBar能夠告訴你如何對自己進行排序(即它是Comparable)還是讓你告訴我如何比較它們(即傳入比較器)。 – yshavit
我只是不明白'>'是在方法簽名中。它不是訪問修飾符,返回類型,方法名稱,那麼它是什麼呢? –
user2296988