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



在第一年的java课程中,我一直在研究一个棘手问题的答案,特别是我需要制作一个程序,既能对泛型列表中的元素求和,又能找到列表中最高和最低的元素。

我完全能够单独完成这两项任务,使用T(泛型类型)扩展Number进行求和,使用Comparable进行比较。当我试图在同一个泛型类型上完成这两个任务时,就会出现问题,因为java无法进行多重继承。

简而言之,当T的上界是Number类时,我如何才能同时完成这两项任务?

感谢代码片段和建议!

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

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

(不确定java.lang.Number是否是您想要的求和。您可能希望按照与Comparator类似的方式引入自己的类型。)

相关内容

  • 没有找到相关文章

最新更新