2012-03-28 174 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