第78讲:Type与Class实战详解

今天来学习下type与class解析

让我们先来看看代码

import scala.reflect.runtime.universe._

class Spark
trait Hadoop
object Flink
class Java{
  class scala
}

object Type_Advanced {
 
  def main(args:Array[String]){
    println(typeOf[Spark])
    println(classOf[Spark])
   
    val spark = new Spark
    println(spark.getClass)
   
    println(classOf[Hadoop])
    println(typeOf[Hadoop])
   
    println(Flink.getClass)//scala中object背后是有具体的类的
   
    val java1 = new Java
    val java2 = new Java
    val scala1 = new java1.scala
    val scala2 = new java2.scala
   
    println(scala1.getClass)
    println(scala2.getClass)
    println(typeOf[java1.scala] == typeOf[java2.scala])
    println(typeOf[java1.scala])
    println(typeOf[java2.scala])
   
    println(classOf[List[Int]] == classOf[List[String]])
    println(typeOf[List[Int]] == typeOf[List[String]])
   
  
   
  }
 
 
}

类和type比较,type比class更具体。任何数据都有type。但是class是一种数据结构,或数据 结构的抽象;而type更具体。
打印类的type就是包名加类名,但是class打印时在前面得加class
object的getClass是class 包名加类名加$。所以object是有具体的类的
object的classOf报错。
getClass是获得类的子类,
classOf是类型本身

分享下更多的scala资源吧:

百度云盘:http://pan.baidu.com/s/1gd7133t

微云云盘:http://share.weiyun.com/047efd6cc76d6c0cb21605cfaa88c416

360云盘: http://yunpan.cn/cQN9gvcKXe26M (提取码:13cd)

信息来源于 DT大数据梦工厂微信公众账号:DT_Spark

关注微信账号,获取更多关于scala学习内容

上一篇:微软在线测试之lucky string,有关斐波那契的题目都在此了


下一篇:小白学习 Redis 数据库日记(2017-06-13)