|
isInstanceOf:检查某个对象是否属于某个类
asInstanceOf:将引用转换为子类的引用
classOf:测试是否是某个类
scala的isInstanceOf,asInstanceOf,classOf与java中的instanceof,class强转,obj.getClass从功能上来说是一一对应的
class Parent
class Son extends Parent
在main中:
val p = new Parent
val s = new Son
val s2 = new Son
println(p.isInstanceOf[Parent])
println(s.isInstanceOf[Parent])
val pas = p.asInstanceOf[Parent]
// val pas2 = p.asInstanceOf[Son] //异常ClassCastException
val pas3 = s.asInstanceOf[Parent]
println(pas)
// println(pas2)
println(pas3)
println(pas.getClass == classOf[Parent])
println(s2.getClass == classOf[Son])
println(p.getClass == pas.getClass)
println(p.getClass == s2.getClass)
println(classOf[Parent] == classOf[Son])
显示:
true
true
com.joe.stu.Parent@3f49dace
com.joe.stu.Son@1e397ed7
true
true
true
false
false
|
|