Scala 中的对象转换
为了将对象(即实例)从一种类型转换为另一种类型,必须使用asInstanceOf方法。此方法在 Class Any中定义,它是 scala 类层次结构的根(如Java中的 Object 类)。 asInstanceOf 方法属于Any类的具体值成员,用于转换接收者对象。
asInstanceof 方法的应用
- 在从应用程序上下文文件中显示 bean 时需要此透视图。
- 它还用于转换数字类型。
- 它甚至可以应用于复杂的代码,例如与Java通信并向其发送 Object 实例数组。
使用 asInstanceof 方法进行转换的示例
- 从整数转换为浮点数。
例子 :
Scala
// Scala program of Object Casting
// Int to Float
case class Casting(a:Int)
// Creating object
object GfG
{
// Main method
def main(args:Array[String])
{
val a = 10
// Casting value of a into float
val b = a.asInstanceOf[Float]
println("The value of a after" +
" casting into float is " + b)
}
}
Scala
// Scala program of Object Casting
// Char to Int
case class Casting(c:Char)
// Creating object
object GfG
{
// Main method
def main(args:Array[String])
{
val c = 'c'
// Casting value of c into Int
val d = c.asInstanceOf[Int]
println("The value of c after" +
" casting into Integer is " + d)
}
}
Scala
// Scala program of Object Casting
// Float to Int
case class Casting(a:Float, b:Float)
// Creating object
object GfG
{
// Main method
def main(args:Array[String])
{
val a = 20.5
val b = 10.2
// Casting value of c into Int
val c = (a/b).asInstanceOf[Int]
println("The value of division after" +
" casting float into Integer will be " + c)
}
}
输出:
The value of a after casting into float is 10.0
- 这里,'a'的类型是Integer,转换后的类型是Float,它是Casting numeric types的例子。
- 从字符转换为整数。
例子 :
斯卡拉
// Scala program of Object Casting
// Char to Int
case class Casting(c:Char)
// Creating object
object GfG
{
// Main method
def main(args:Array[String])
{
val c = 'c'
// Casting value of c into Int
val d = c.asInstanceOf[Int]
println("The value of c after" +
" casting into Integer is " + d)
}
}
输出:
The value of c after casting into Integer is 99
- 在这里,'c' 的类型是字符,转换后的类型将是整数,这给出了 'c' 的 ASCII 值。
- 从浮点数转换为整数。
例子 :
斯卡拉
// Scala program of Object Casting
// Float to Int
case class Casting(a:Float, b:Float)
// Creating object
object GfG
{
// Main method
def main(args:Array[String])
{
val a = 20.5
val b = 10.2
// Casting value of c into Int
val c = (a/b).asInstanceOf[Int]
println("The value of division after" +
" casting float into Integer will be " + c)
}
}
输出:
The value of devision after casting float into Integer will be 2
- 在这里,'a' 和 'b' 的类型是浮点数,但在 Casting 之后类型将是浮点数。