您的位置:首页 > 其它

Scala深入浅出进阶经典 第78讲:Type与Class实战详解

2015-09-27 16:40 435 查看
package com.dt.scalaInAction.demo_078
import scala.reflect.runtime.universe._
/**
* Type与Class实战详解
*/
class Spark
trait Hadoop
object Flink
class Java {
class Scala
}
object Type_Advanced {
def main(args: Array[String]): Unit = {
println(typeOf[Spark])   //com.dt.scalaInAction.demo_078.Spark
println(classOf[Spark])  //class com.dt.scalaInAction.demo_078.Spark

val spark = new Spark
println(spark.getClass)  //class com.dt.scalaInAction.demo_078.Spark
println(spark.getClass == classOf[Spark]) //true

println(classOf[Hadoop]) //interface com.dt.scalaInAction.demo_078.Hadoop
println(typeOf[Hadoop])  //com.dt.scalaInAction.demo_078.Hadoop

//单例  Flink$ 说明object的背后是有具体的类
println(Flink.getClass)  //class com.dt.scalaInAction.demo_078.Flink$
//println(classOf[Flink])  //not found: type Flink

/**
* classOf getClass的区别
* getClass是表明当前类具体的子类
* classOf是表明当前具体的类型       二者没有过多的区别
*/

val java1 = new Java
val java2 = new Java

val scala1 = new java1.Scala //val scala1: java1.Scala
val scala2 = new java2.Scala //val scala2: java2.Scala
println(scala1.getClass)     //class com.dt.scalaInAction.demo_078.Java$Scala
println(scala2.getClass)     //class com.dt.scalaInAction.demo_078.Java$Scala
println(typeOf[java1.Scala] == typeOf[java2.Scala])  //false
println(typeOf[java1.Scala]) //java1.Scala
println(typeOf[java2.Scala]) //java2.Scala

println(classOf[List[Int]] == classOf[List[String]]) //true
println(typeOf[List[Int]] == typeOf[List[String]])   //false
println(classOf[List[Int]])  //class scala.collection.immutable.List
println(typeOf[List[Int]])   //scala.List[Int]

}
}


以上内容是从王家林老师DT大数据课程第78讲的学习笔记和个人整理。

DT大数据微信公众账号:DT_Spark

王家林老师QQ:1740415547

王家林老师微信号:18610086859

第78讲视频网站地址:http://pan.baidu.com/s/1ntmr88L
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: