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

1 java generics upperbound

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

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

简而言之,如果T的上限是Number类,我怎么能完成这两个任务呢?

感谢代码片段和建议!

Tom*_*ine 5

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

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

(不确定java.lang.Number你是否想要求和.你可能想要沿着类似的路线介绍你自己的类型Comparator.)