【Scala】isInstanceOf 与 classOf的对比,代码+注解简洁明了

601-赵同学

发表文章数:191

热门标签

, , ,
首页 » 大数据 » 正文

class Animal {

}

class Cat extends Animal {

}

object Cat {
  def main(args: Array[String]): Unit = {
    //新创建一个Cat对象
    val cat1: Cat = new Cat
    //创建另一个Cat对象
    val cat2: Animal = new Cat    //因为Cat继承了Animal类,所以指定类型也可以是Animal

    //isInstanceOf只能粗略判断指定对象是不是一个类的实例及其子类的实例,并不能精准判断来自哪个类
    println(cat1.isInstanceOf[Cat])
    println(cat2.isInstanceOf[Animal])
    println("------------")
    println(cat2.isInstanceOf[Cat])
    println(cat2.isInstanceOf[Animal])

    println("============")
    //而 getClass == classOf[]可以精准判断指定对象是否是某一个类的实例
    println(cat1.getClass == classOf[Cat])
    println(cat1.getClass == classOf[Animal])
    println("------------")
    println(cat2.getClass == classOf[Cat])
    println(cat2.getClass == classOf[Animal])
  }
}

显示创建对象的指定类型需要勾选☑️此选项
【Scala】isInstanceOf 与 classOf的对比,代码+注解简洁明了

控制台结果

true
true
------------
true
true
============
true
false
------------
true
false

未经允许不得转载:作者:601-赵同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《【Scala】isInstanceOf 与 classOf的对比,代码+注解简洁明了》 发布于2020-04-10

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录