Scala: почему Float.floatToIntBits(2f) не удается?

scala> Float.floatToI

При нажатии на вкладку здесь отображается Float.floatToIntBits. Но,

scala> Float.floatToIntBits(2f)
<console>:6: error: value floatToIntBits is not a member of object Float
 Float.floatToIntBits(2f)
 ^
</console>
2 ответа

Float.floatToIntBits пытается вызвать метод на объекте scala.runtime.Float (я думаю).

scala> Float
res2: Float.type = object scala.Float

Вам нужно java.lang.Float.floatToIntBits:

scala> java.lang.Float.floatToIntBits(2f)
res1: Int = 1073741824


Выполнение кода REPL показывает методы из всех объектов Float, доступных на пути (т.е. scala.Float scala.runtime.Float и java.lang.Float). Однако scala.Float scala.runtime.Float имеет приоритет над java.lang.Float и, следовательно, ошибку.

Следующие работы:

scala> import java.lang.{Float => JFloat}
import java.lang.{Float=>JFloat}
scala> JFloat.floatToIntBits(2f)
res5: Int = 1073741824

licensed under cc by-sa 3.0 with attribution.