在第一年的 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/