【发布时间】:2014-08-13 22:34:22
【问题描述】:
我可以将 Int 数据转换为字节。
scala> 10.asInstanceOf[Byte]
res8: Byte = 10
但是在 Any 类型中使用相同的值,强制转换会引发错误。
scala> val x : Any = 10
x: Any = 10
scala> x.asInstanceOf[Byte]
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Byte
at scala.runtime.BoxesRunTime.unboxToByte(BoxesRunTime.java:98)
at .<init>(<console>:10)
我可以施放两次。
scala> val y = x.asInstanceOf[Int]
y: Int = 10
scala> y.asInstanceOf[Byte]
res11: Byte = 10
还有比这更好的方法吗?
【问题讨论】:
-
请注意,您不需要
10.asInstanceOf[Byte]。10.toByte工作得很好。