确定 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
工作的。