类型判断
有时候,我们设计的程序,要根据变量的类型来执行对应的逻辑。
在scala中,如何来进行类型判断呢?
有两种方式: isInstanceOf getClass/classOf isInstanceOf/asInstanceOf
在Java中,我们可以使用instanceof关键字来判断类型、以及(类型)object来进行类型转换,在scala中如何实现呢?
scala中对象提供isInstanceOf和asInstanceOf方法。
isInstanceOf判断对象是否为指定类的对象
asInstanceOf将对象转换为指定类型
用法
// 判断对象是否为指定类型 val trueOrFalse:Boolean = 对象.isInstanceOf[类型] // 将对象转换为指定类型 val 变量 = 对象.asInstanceOf[类型]
示例
示例说明
定义一个Person类
定义一个Student类继承自Person类
创建一个Student类对象
判断该对象是否为Student类型,如果是,将其转换为Student类型并打印该对象
参考代码
class Person3
class Student3 extends Person3
object Main3 {
def main(args: Array[String]): Unit = {
val s1:Person3 = new Student3
// 判断s1是否为Student3类型
if(s1.isInstanceOf[Student3]) {
// 将s1转换为Student3类型
val s2 = s1.asInstanceOf[Student3]
println(s2)
}
}
}
答案: