Scala类型检查与转换

本文介绍了Scala中的类型检查与转换方法,包括isInstanceOf用于检查对象是否属于特定类,asInstanceOf进行类型转换,classOf用于获取类对象。通过示例代码展示了这些方法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Scala类型检查与转换

isInstanceOf:检查某个对象是否属于某个给定的类。
asInstanceOf:将引用转换为子类的引用。
classOf:如果想测试p指向的是一个Employee对象但又不是其子类,可以用if(p.getClas
s == classOf[Employee])
,classOf方法定义在scala.Predef对象中,因此会被自动引入。如:

if(p.isInstanceOf[Employee]){ 
  val s = p.asInstanceOf[Employee] 
}

与Java相比:

Scala

Java

obj.isInstanceOf[Class]

obj instanceof Class

obj.asInstanceOf[Class]

(Class)obj

classOf[Class]

Class.class


e.g

object ClassTest {
  def main(args: Array[String]){
    val testA: SuperClass = new SuperClass
    val testB: SuperClass = new SubClass
    val testC: SubClass = new SubClass
    
    println(testA.isInstanceOf[SuperClass])
    println(testB.isInstanceOf[SuperClass])
    println(testC.isInstanceOf[SubClass])
    
    println(testA.asInstanceOf[SuperClass])
    println(testB.asInstanceOf[SuperClass])
    println(testB.asInstanceOf[SubClass])
	
	if(testB.getClass() == classOf[SuperClass]){
    	println("true")
    }
    else{
      println("false")
    }
  }
}

class SuperClass{
  
}

class SubClass extends SuperClass{
  
}

  

运行结果:

true
true
true
edu.firstday.SuperClass@11b5a415
edu.firstday.SubClass@2c2767c8
edu.firstday.SubClass@2c2767c8
false

  




版权声明:本文为博主原创文章,未经博主允许不得转载。

 

转载于:https://www.cnblogs.com/GatsbyNewton/p/4780617.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值