标签:
学习了scala的Type与Class实战详解,在运行时是通过反射来得到的。但是scala不同。
scala.reflect.runtime.universe._
type
类和type比较,type比class更具体。任何数据都有type。但是class是一种数据结构,或数据 结构的抽象。
更宏观。但type更具体。
打印类的type就是包名加类名,但是class打印时在前面得加class
object的getClass是class 包名加类名加$。所以object是有具体的类的
object的classOf报错。
getClass是获得类的子类,
classOf是类型本身
trait的为interface
val java1=new Java
val java2=new Java
val scala1=new java1.Scala
val scala2=new java2.Scala
println(scala1.getClass)//class 包名 类名
println(scala2.getClass)//class 包名类名
println(typeOf[java1.Scala]==typeOf[java2.Scala])//false
println(typeOf[java1.Scala])//java1.Scala
println(tpyeOf[java2.Scala])//java2.Scala
println(classOf[List[Int]]==classOf[List[String]])//true
println(typeOf[List[Int]]==typeOf[List[String]])//false
type显示的是更具体到对象的类型,而class只是类类型
标签:
原文地址:http://www.cnblogs.com/tom-lee/p/4707131.html