为什么可以';从Scala2.9.0开始,是否从字节调用HexString方法?

为什么可以';从Scala2.9.0开始,是否从字节调用HexString方法?,scala,implicit,implicit-conversion,Scala,Implicit,Implicit Conversion,表A2.8.1 scala> val a:Byte = 1 a: Byte = 1 scala> a.toHexString res0: String = 1 但是Scala2.9.0 scala> val a:Byte = 1 a: Byte = 1 scala> a.toHexString <console>:9: error: value toHexString is not a member of Byte a.toHexStri

表A2.8.1

scala> val a:Byte = 1
a: Byte = 1

scala> a.toHexString

res0: String = 1
但是Scala2.9.0

scala> val a:Byte = 1
a: Byte = 1

scala> a.toHexString
<console>:9: error: value toHexString is not a member of Byte
       a.toHexString
         ^
scala>vala:Byte=1
a:字节=1
scala>a.toHexString
:9:错误:值toHexString不是字节的成员
a、 Tohextstring
^

自从Scala2.9.0以来,为什么不能从字节调用HexString方法?

Scala2.9.0

如果方法
toHexString
未在
Byte
中定义,编译器将尝试使用方法
toHexString
搜索到类型的隐式转换,但这次没有运气,这就是编译错误的原因。实际上,IMHO
RichByte
应该定义一个
toHexString
方法(
RichInt
RichLong
拥有它)

Scala 2.8.1

我使用
Scala-Xprint:jvm
启动Scala,以查看编译器的功能:

scala> b.toHexString

// ... cutted the unimportant parts

scala.this.Predef.intWrapper(scala.this.Predef.byte2int(line4$object$$iw$$iw.b())).toHexString();

// ... cutted the unimportant parts
正如我们可以看到的,第一个隐式转换
byte2int
应用,然后隐式转换
intWrapper
应用并返回
RichInt
的实例,其中定义了方法
tohextstring


但目前我不知道为什么这两个隐式转换是链接的,因为实际上Scala不允许隐式转换的链接。。。任何人都可以点亮它?

它可能已经在2.9中归档并修复,这就是它不再工作的原因。还是我错了?