📜  确定 Scala 对象的类

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

确定 Scala 对象的类

要确定 Scala 对象的类,我们使用getClass方法。此方法返回作为实例的父类的类详细信息。
下面是确定 Scala 对象的类的示例。

带参数调用方法 –

示例 #1:

// Scala program to determine the class of a Scala object
  
// Creating object 
object Geeks
{ 
    // Using getClass method
    def printClass(num: Int*) 
    {
        println("class: " + num.getClass)
    }
      
    // Main method 
    def main(args: Array[String]) 
    { 
        // Calling parameter with parameter
        printClass(4, 2)
    } 
} 

输出:

class: class scala.collection.mutable.WrappedArray$ofInt

在上面的示例中,使用参数调用 printClass 方法演示了 Scala 类。

不带参数调用方法 –

示例 #2:

// Scala program to determine the class of a Scala object
  
// Creating object 
object Geeks 
{ 
    // Using getClass method
    def printClass(num: Int*) 
    {
        println("class: " + num.getClass)
    }
      
    // Main method 
    def main(args: Array[String]) 
    { 
        // Calling method without parameter
        printClass()
    } 
} 

输出:

class: class scala.collection.immutable.Nil$

在上面的例子中,不带参数调用 printClass 方法演示了 Scala 类。

使用额外的 get* 方法 –

示例#3:

// Scala program to show how 
// the additional get* methods work
  
sealed trait Person
class Boy extends Person
class Girl extends Person
  
// Creating object
object Person 
{
    // factory method
    def getPerson(s: String): Person = 
        if (s == "Boy") new Boy else new Girl
}
  
object ObjectCastingTest extends App 
{
  
    val person = Person.getPerson("Boy")
      
    // class object_casting.Boy
    println("person: " + person.getClass)
      
    // object_casting.Boy
    println("person: " + person.getClass.getName)  
      
    // Boy
    println("person: " + person.getClass.getSimpleName)  
      
    // object_casting.Boy
    println("person: " + person.getClass.getCanonicalName)  
  
}

输出:

person: class Boy
person: Boy
person: Boy
person: Boy

上面的代码显示了其他 get* 方法getName, getSimpleName, getSimpleName 和getCanonicalName工作的。