2011-07-28 15 views
1

このクラスは、Python開発者が2タプルと考えるかもしれない、任意の型のオブジェクトのペアを表現することを意図しています。より限定的なタイプのジェネリッククラスのサブクラスを作成するにはどうすればよいですか?

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

は私がNumberPairと呼ばれる新しいサブクラスを作りたい - 唯一の違いは、ペアが考えられるオブジェクトの任意の2つのクラスを含めることができますが、私のNumberPairクラスが数字のみを含むように許可されるということです。

これを表現する方法を教えてもらえますか?

PS。確かに、このクラスを使用できる場所であればMapを使用することができるので、これは愚かなデザインのように見えます。

答えて

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> { 

} 
関連する問題