为什么 Scala 的 RichInt 扩展 Comparable[Int] 而不是 Comparable[RichInt]?
Why does Scala's RichInt extends Comparable[Int] instead of Comparable[RichInt]?
为什么 Scala 的 RichInt
扩展 Comparable[Int]
而不是 Comparable[RichInt]
?
我是 Scala 的新手。在浏览 Scala 库代码时,我注意到 class RichInt
extends 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.
}
....
}
首先我们需要知道 RichInt
用于 提供辅助函数 为 Int
输入 implicit conversions defined in the Predef:
@inline implicit def intWrapper(x: Int) = new runtime.RichInt(x)
因此您可以像这样使用它:
2.doubleValue()
2.shortValue()
...
对于你的问题:为什么它不扩展 java.lang.Comparable[RichInt]
因为我们实际操作的是Int
类型,而不是RichInt
类型。喜欢:
2.compare(3)
为什么 Scala 的 RichInt
扩展 Comparable[Int]
而不是 Comparable[RichInt]
?
我是 Scala 的新手。在浏览 Scala 库代码时,我注意到 class RichInt
extends 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.
}
....
}
首先我们需要知道 RichInt
用于 提供辅助函数 为 Int
输入 implicit conversions defined in the Predef:
@inline implicit def intWrapper(x: Int) = new runtime.RichInt(x)
因此您可以像这样使用它:
2.doubleValue()
2.shortValue()
...
对于你的问题:为什么它不扩展 java.lang.Comparable[RichInt]
因为我们实际操作的是Int
类型,而不是RichInt
类型。喜欢:
2.compare(3)