我一直在研究第一年java课程中一个棘手问题的答案,特别是我需要制作一个程序,能够将通用列表中的元素相加,并找到列表中的最高和最低。< / p>
我完全有能力单独完成这两项任务,T(通用类型)扩展数字用于求和,比较可比较。当我尝试完成同一泛型类型的两个任务时,会出现问题,因为java无法进行多重继承。
简而言之,我怎样才能完成这两项任务,同时让T的上限为Number类?
感谢代码片段和建议!
答案 0 :(得分:5)
T extends Number & Comparable<T>
应该这样做。 T extends Number & Comparable<? super T>
有点笼统。
Java确实支持“接口的多重继承”(也许是Java SE 8中的一些古怪的多重继承实现)。一个类扩展了另一个类,可以实现许多接口。
(不确定java.lang.Number
是否是您想要求和的结果。您可能想要沿Comparator
的类似行介绍自己的类型。)