scala进阶25-获取类型(类、对象、object、trait)

Scala类型与反射实践
本文通过具体的Scala代码示例介绍了如何使用getClass和classOf来获取运行时类型信息。文章展示了不同场景下这两种方法的应用,并解释了它们之间的区别。
import scala.reflect.runtime.universe._

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

/**
  * 实例获取类用getClass
  * 类获取用classOf
  */
object Type_Advanced {
  def main(args: Array[String]): Unit = {
//    println(typeOf[Spark]) //报错
    println(classOf[Spark])

    val spark = new Spark
    println(spark.getClass)

    println(classOf[Hadoop])
    println(Flink.getClass) //class Flink$ 说明object是有对应的类的
//    println(classOf[Flink]) //报错,找不到类,

    val java1 = new Java
    val java2 = new Java
    val scala1 = new java1.Scala
    val scala2 = new java2.Scala

    println(java1.getClass)
    println(java2.getClass)
//    println(typeOf[java1.Scala]) //报错,找不到类
//    println(typeOf[java2.Scala])

    println(classOf[List[Int]])
  }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值