risc-v中文社区

 找回密码
 立即注册
查看: 1094|回复: 0

[原创] risc-v开发基础 Scala 类型检查与转换---(21)

[复制链接]

347

主题

564

帖子

2237

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2237
发表于 2021-8-18 20:07:26 | 显示全部楼层 |阅读模式
isInstanceOf:检查某个对象是否属于某个类
asInstanceOf:将引用转换为子类的引用
classOf:测试是否是某个类
scala的isInstanceOf,asInstanceOf,classOf与java中的instanceof,class强转,obj.getClass从功能上来说是一一对应的
class Parent
class Son extends Parent
在main中:
    val p = new Parent
    val s = new Son
    val s2 = new Son
    println(p.isInstanceOf[Parent])
    println(s.isInstanceOf[Parent])
    val pas = p.asInstanceOf[Parent]
//    val pas2 = p.asInstanceOf[Son] //异常ClassCastException
    val pas3 = s.asInstanceOf[Parent]
    println(pas)
//    println(pas2)
    println(pas3)
    println(pas.getClass == classOf[Parent])
    println(s2.getClass == classOf[Son])
    println(p.getClass == pas.getClass)
    println(p.getClass == s2.getClass)
    println(classOf[Parent] == classOf[Son])
显示:
true
true
com.joe.stu.Parent@3f49dace
com.joe.stu.Son@1e397ed7
true
true
true
false
false


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Archiver|手机版|小黑屋|risc-v中文社区

GMT+8, 2024-5-3 16:24 , Processed in 0.014722 second(s), 17 queries .

risc-v中文社区论坛 官方网站

Copyright © 2018-2021, risc-v open source

快速回复 返回顶部 返回列表