📜  Scala 中的对象转换

📅  最后修改于: 2022-05-13 01:54:22.748000             🧑  作者: Mango

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 之后类型将是浮点数。