zoukankan      html  css  js  c++  java
  • Scala类型检查与转换

    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
    

      




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

  • 相关阅读:
    Delphi DataSnap入门操作,动起来
    Delphi 记录Record和字符串String相互赋值
    转载:JAVA每天学习
    转载:IntelliJ IDEA 的使用方法总结
    合并多个txt
    如何用vosviewer进行时间线分析——结合pajek
    链路预测(一)
    【js】百分比保留两位小数
    【基础】float保留两位小数
    【js】鼠标悬停显示信息
  • 原文地址:https://www.cnblogs.com/GatsbyNewton/p/4780617.html
Copyright © 2011-2022 走看看