1

私は初年度のJavaコースでトリッキーな質問への答えに向けて研究してきました.具体的には、一般的なリストの要素を合計し、リストの最高値と最低値を見つけることができるプログラムを作成する必要があります.

私はこれらのタスクの両方を個別に完全に完了することができます.T(ジェネリック型)は、合計のために Number を拡張し、比較のために Comparable を拡張します。この問題は、Java が多重継承に対応していないため、同じジェネリック型で両方のタスクを実行しようとすると発生します。

要するに、T の上限を Number クラスにして、これらのタスクの両方を達成するにはどうすればよいでしょうか?

コード スニペットとアドバイスをお待ちしております。

4

1 に答える 1

5

T extends Number & Comparable<T>それをする必要があります。T extends Number & Comparable<? super T>もう少し一般的です。

Javaは、「Java SE 8の「インターフェースの多重継承」(およびおそらく実装の奇妙な多重継承)をサポートします)。クラスは他の1つのクラスを拡張し、多くのインターフェースを実装できます。

java.lang.Number合計に必要なものかどうかはわかりません。に類似した行に沿って独自のタイプを導入することをお勧めしますComparator。)

于 2012-03-28T02:46:58.870 に答える