2012-03-28 32 views
1

我一直在研究第一年Java課程中棘手問題的答案,具體而言,我需要編寫一個能夠將一個通用列表,並在列表中找到最高和最低。在Java中使用泛型(使用相同類型進行比較和求和)

我完全有能力分別完成這兩項任務,使T(通用類型)擴展數字以進行求和,並進行比較以進行比較。當我嘗試完成兩個相同泛型類型的任務時,就會發生這個問題,因爲Java無法實現多重繼承。

總之,我怎麼能完成這兩項任務,而T的上界是Number類?

代碼片段和建議感謝!

+0

http://onjava.com/onjava/excerpt/javaian5_chap04/index1.html看起來可能對你有幫助 – GreyBeardedGeek 2012-03-28 02:54:51

回答

5

T extends Number & Comparable<T>應該這樣做。 T extends Number & Comparable<? super T>有點更一般。

的Java不支持「接口的多重繼承」(也許還有一些怪人多種實現的繼承」在Java SE 8)一個類繼承另一個類,並能實現多種接口。

(不知道是否java.lang.Number你可能想要按照與Comparator類似的方法向你介紹自己的類型。)

+0

非常感謝!因爲我們還沒有使用過比較器,所以我將簡單地使用這樣一個事實,即元素必須全部是Number並且取其doubleValue(); My p在向我們提供此類信息時,rof並不是最好的,所以再次感謝! – user1297003 2012-03-28 03:01:18