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 中可能还有一些奇怪的实现的多重继承)。一个类扩展了另一个类并且可以实现多个接口。

(不确定是否java.lang.Number是您想要求和的内容。您可能想按照与 类似的方式介绍您自己的类型Comparator。)

于 2012-03-28T02:46:58.870 回答