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
3val 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
5val 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
5val tiger:Animal = new Tiger
// 判断类型是否为Tiger,如果是的话进行强转
if(tiger.isInstanceOf[Tiger]){
tiger.asInstanceOf[Tiger].run
}