2012-12-11 53 views

回答

3

那麼,當你想到是什麼消耗吧。例如:

public <T extends Comparable<T>> void sort(List<T> list) 

這樣,你可以調用一個類型安全的方式item.compareTo(otherItem),只要兩者都T

同樣,當實施它,你可以寫:的

public int compareTo(MyClass other) 

,而不必使用:

public int compareTo(Object other) 

,然後澆注。

所以是的,實現Comparable<SomethingElse>會很奇怪 - 但是沒有其他方式以通用的方式引用「實現此接口的類型」,並且能夠表達「其他」乾淨地部分。

2

你可以有兩種類型XY都是Comparable<B>。只要XY擴展(或實現B),您可以自由交叉比較這些對象。

理論上你甚至可以寫一個類WComparable<V>。這意味着您可以將其與V進行比較,但是而不是W的其他實例進行比較。我目前無法想到一個很好的用例,但這是可能的。

1

AFAIK,這是唯一可以說T是與自身相似的方式。

他們可以添加一些速記來表達這一點,我懷疑它不會有任何縮短。

0

Rajikumar,你已經回答了你的問題。 Comparable對於保證類型安全是通用的,並確保你給出了正確類型的參數,這是實現Comparable的類。

0

使用此參數,您不需要使用instanceof運算符。

Comparable常用於比較對象的實例是否與另一個實例相對應。例如,如果你想現在如果一個DogA和DogB是一樣的,你就知道沒有人是一隻貓。所以你永遠不會看到一隻貓是不是狗,因爲它們有不同的起源。這

相關問題