使用typetag检查类型是否是另一个类型的超类型

时间:2013-09-28 01:15:18

标签: scala

由于>:>的{​​{1}}方法已被弃用且ClassTag不支持该操作,如何检查运行时类型是否是另一个的超类型?

1 个答案:

答案 0 :(得分:2)

scala>  def checkType[S: ru.TypeTag, T: ru.TypeTag] = ru.typeOf[T] <:< ru.typeOf[S]
     |      | checkType: [S, T](implicit evidence$1: reflect.runtime.universe.TypeTag[S], implicit evidence$2: reflect.runtime.universe.TypeTag[T])Boolean

scala>  checkType[Any, String]
res0: Boolean = true

scala>  checkType[Int, String]
res1: Boolean = false