public abstract class SomeClass<Sometype extends OtherClass> extends Something implements Comparator<??>{
//code
如何更換?在比較器中,它是任何擴展SomeClass的類?從抽象類實現比較器
public abstract class SomeClass<Sometype extends OtherClass> extends Something implements Comparator<??>{
//code
如何更換?在比較器中,它是任何擴展SomeClass的類?從抽象類實現比較器
,如果你想攜帶型界或簡單地允許SomeClass
任何子類目前尚不清楚。
根據定義,您實現的compare
方法將允許與任何子類型進行比較(因爲任何子類型在傳遞給方法時可以轉換爲更一般的父類型)。
允許任何參數化類型,而不是限制性Sometype
,你可以寫:
public abstract class SomeClass<Sometype extends OtherClass> extends Something
implements Comparator<SomeClass<?>>
這也是法律與顯式類型界限寫:
public abstract class SomeClass<Sometype extends OtherClass> extends Something
implements Comparator<SomeClass<Sometype>>
你不能使用類似? extends SomeClass
,但你可以只使用Comparator<SomeClass>
和轉換爲你所需要的
你的意思'SomeClass'或'SomeType'?還是你的意思是「Comparable」而不是「Comparator」?有一個比較器可以比較其他的比較器對象,這是沒有意義的。 –
我想要實現的是確保SomeClass的每個子類型都將實現CompareTo方法 – user3236409
因此,如果'x'和'y'是'SomeClass'的某個子類型的對象,那麼您希望能夠編寫' x.compareTo(y)',是嗎?如果是這樣,你會將'比較器'與'Comparable'混淆。 –