Generics 初学者:我怎么说;泛型A的任何超类;

Generics 初学者:我怎么说;泛型A的任何超类;,generics,scala,Generics,Scala,我在开始时使用快速排序示例,并尝试将其调整为泛型类型a,而不仅仅是Ints 到目前为止,我的工作是 def sort[A <: Ordered[A]](xs: Array[A]) 我被误导了,试图使用RichLong和RichBoolean作为测试类型,因为它们实际上不是反射性的有序的(它们扩展了有序的[Long]和有序的[Boolean]。类似的东西 def sort[B >: A, A <: Ordered[B]](xs: Array[B]) def sort[B>

我在开始时使用快速排序示例,并尝试将其调整为泛型类型
a
,而不仅仅是
Int
s

到目前为止,我的工作是

def sort[A <: Ordered[A]](xs: Array[A]) 
我被误导了,试图使用
RichLong
RichBoolean
作为测试类型,因为它们实际上不是反射性的
有序的
(它们扩展了
有序的[Long]
有序的[Boolean]

类似的东西

def sort[B >: A, A <: Ordered[B]](xs: Array[B]) 

def sort[B>:A,A您所寻找的东西要么源自
有序的
特征,要么可以被视为是这样。从许多类到
有序的
存在大量隐式转换(称为视图),您也可以拥有自己的。然而,您最终会得到:



def sort[A也许你指的是“任何子类”而不是“任何超类”?至于答案的其余部分,请看下面。@fotNelton:不,我想要的是A:A,A数组[A]
,我实际上不会将aOrdered[any]
而不是
Ordered[a]的类型a
。现在我明白你的意思了。不过我必须考虑一下。谢谢你的澄清。这适用于类
X
,但不适用于类
Y
Z
,上面:
错误:类型Y=>的发散隐式展开有序[Y]
是的,我再次阅读了你的问题,意识到我在最后(在最后编辑之前)忽略了实际问题。我的错。
def sort[B >: A, A <: Ordered[B]](xs: Array[B])