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
    

      




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

  • 相关阅读:
    5059 一起去打CS
    2439 降雨量
    vijos P1037搭建双塔
    4979 数塔
    2596 售货员的难题
    P2342 叠积木
    1540 银河英雄传说
    1051 接龙游戏
    hdu1251
    洛谷P1717 钓鱼
  • 原文地址:https://www.cnblogs.com/GatsbyNewton/p/4780617.html
Copyright © 2011-2022 走看看