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
    

      




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

  • 相关阅读:
    X-Sequence
    Little Bishops uva861
    组合数学poj 1496 1850 同样的代码过两题
    Frame Stacking 框架堆叠
    ディクショナリテーブル
    財務会計関連(FI&CO)
    開発者向け
    ABAP 7.51 構文書き方変換について
    ABAP News for Release 7.51 – ABAP CDS Client Handling
    パフォーマンス分析関連
  • 原文地址:https://www.cnblogs.com/GatsbyNewton/p/4780617.html
Copyright © 2011-2022 走看看