0%

scala类型检查

scala类型检查

要测试某个对象是否属于某个给定的类,可以用 isInstanceOf方法。用asInstanceOf方法将引用转 换为子类的引用。classOf获取对象的类名。

  • classOf[String]就如同Java的 String.class

    1
    2
    3
    4
    // classOf获取类
    val clazz:Class[Tiger] = classOf[Tiger]
    // class com.zhanghe.study.study_scala.oop.Tiger
    println(clazz)
  • 也可以使用反射来获取类

    1
    2
    3
    val tiger:Animal = new Tiger
    // class com.zhanghe.study.study_scala.oop.Tiger
    println(tiger.getClass)
  • obj.isInstanceOf[T]就如同Java的obj instanceof T 判断obj是不是T类型

    1
    2
    3
    4
    5
    val tiger:Animal = new Tiger
    // true
    println(tiger.isInstanceOf[Animal])
    // true
    println(tiger.isInstanceOf[Tiger])
  • obj.asInstanceOf[T]就如同Java的(T)obj 将obj强 转成T类型

    1
    2
    3
    4
    5
    val tiger:Animal = new Tiger
    // 判断类型是否为Tiger,如果是的话进行强转
    if(tiger.isInstanceOf[Tiger]){
    tiger.asInstanceOf[Tiger].run
    }