为什么Scala的RichInt
扩展Comparable[Int]
而不是Comparable[RichInt]
?
我是Scala的新手。浏览Scala库代码时,我注意到类RichInt
扩展了ScalaNumberProxy[Int]
,
ScalaNumberProxy
延伸OrderedProxy
,OrderedProxy
延伸Ordered
,Ordered
延伸java.lang.Comparable
。
所以我的理解是RichInt
(间接)延伸java.lang.Comparable[Int]
。
我的问题是为什么不扩展java.lang.Comparable[RichInt]
?
我提出这个问题的原因是Java,我会写这样的代码:
class A implements Comparable<A> {
@Override
public int compareTo(A other) {
//implement the method.
}
....
}
答案 0 :(得分:2)
首先,我们需要知道RichInt
中Int
所定义的@inline implicit def intWrapper(x: Int) = new runtime.RichInt(x)
类型2.doubleValue()
2.shortValue()
...
用于提供帮助函数: p>
Int
所以你可以像:
一样使用它RichInt
对于你的问题:为什么它不扩展java.lang.Comparable [RichInt]
因为我们实际上是在2.compare(3)
类型上运行,而不是{{1}}类型。像:
{{1}}