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

标签 java generics upperbound

在第一年的 Java 类(class)中,我一直在研究一个棘手问题的答案,具体来说,我需要制作一个程序,既能对通用列表中的元素求和,又能找到列表中的最高元素和最低元素。

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

简而言之,当 T 的上限为 Number 类时,我如何完成这两项任务?

感谢代码片段和建议!

最佳答案

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

Java 确实支持“接口(interface)的多重继承”(在 Java SE 8 中可能还有一些奇怪的实现的多重继承)。一个类扩展另一个类并且可以实现许多接口(interface)。

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

关于java - 使用 Java 中的泛型类型(使用相同类型进行比较和求和),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9900436/

相关文章:

java - Eclipse 无法解析 LWJGL 引用 (.jar)

C# 将泛型委托(delegate)传递给构造函数

python - 在 CreateView 上制作表单字段的正确 Django 方法,但在 UpdateView 上是可选的?

java - 比较对象数组中的字符串

java - 转义 Java RegEx 元字符

java - 如何在 Java 中实例化泛型类型?

algorithm - 寻找 f(n) 的上限

java:这个 do-while 代码片段的大哦顺序?加上严格的上限

Kotlin 泛型多个上限(作为 OR/union 构造)

java - GlassFish 上的 EJB + WebService 以及支持 HTTPS 的 Netbeans