在Java中使用通用类型(使用相同类型进行比较和求和)

时间:2012-03-28 02:38:35

标签: java generics upperbound

我一直在研究第一年java课程中一个棘手问题的答案,特别是我需要制作一个程序,能够将通用列表中的元素相加,并找到列表中的最高和最低。< / p>

我完全有能力单独完成这两项任务,T(通用类型)扩展数字用于求和,比较可比较。当我尝试完成同一泛型类型的两个任务时,会出现问题,因为java无法进行多重继承。

简而言之,我怎样才能完成这两项任务,同时让T的上限为Number类?

感谢代码片段和建议!

1 个答案:

答案 0 :(得分:5)

T extends Number & Comparable<T>应该这样做。 T extends Number & Comparable<? super T>有点笼统。

Java确实支持“接口的多重继承”(也许是Java SE 8中的一些古怪的多重继承实现)。一个类扩展了另一个类,可以实现许多接口。

(不确定java.lang.Number是否是您想要求和的结果。您可能想要沿Comparator的类似行介绍自己的类型。)