2011-07-28 116 views
1

該類旨在表示一對任意類型的對象 - python開發人員可能會將其視爲2元組。如何創建具有更多限制類型的泛型類的子類?

public class Pair<DD extends Comparable<DD>,VV> implements Comparable< Pair<DD,VV> > { 
    DD d; 
    VV v; 
    // Implementation removed. 
    } 

我想創建一個名爲NumberPair新的子類 - 唯一的區別是,雖然可以想見包含任何兩個類的對象,我NumberPair類將只允許包含數字

有人可以告訴我如何表達這個?

PS。誠然,這看起來像一個愚蠢的設計,因爲我們可以使用這個類的任何地方,我們也可以使用地圖 - 現在請忽略。

回答

1

我不知道如果我完全搞定這個問題,但我認爲這可能是你在找什麼:

public class NumberPair<NDD extends Number & Comparable<NDD>, NVV extends Number> extends Pair<NDD, NVV> {} 

這迫使兩鍵入參數以擴展Number。

+0

是的,這是我想要的。 @ JustYo的解決方案是正確的,但我想我錯了這個問題。我不想放棄將其綁定到數字的特定實現的能力,但是如果有人用任何非數字創建實例,我都希望它失敗。 –

1

這是聲明:

public class NumberPair<VV> extends Pair<Number,VV> { 

}