Open In App

Determine the class of a Scala object

Last Updated : 02 Aug, 2019
Comments
Improve
Suggest changes
Like Article
Like
Report
To determine the class of a Scala object we use getClass method. This method returns the Class details which is the parent Class of the instance. Below is the example to determine class of a Scala object. Calling method with argument - Example #1: Scala
// 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)
    } 
} 
Output:
class: class scala.collection.mutable.WrappedArray$ofInt
In above example, Calling the printClass method with parameter demonstrates the class Scala. Calling method without argument - Example #2: Scala
// 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()
    } 
} 
Output:
class: class scala.collection.immutable.Nil$
In above example, Calling the printClass method without parameter demonstrates the class Scala. With additional get* methods - Example #3: Scala
// 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)  

}
Output:
person: class Boy
person: Boy
person: Boy
person: Boy
Above code show how the additional get* methods getName, getSimpleName, and getCanonicalName work.

Next Article
Article Tags :
Practice Tags :

Similar Reads