调用typeOf时没有TypeTag

时间:2017-07-04 09:26:44

标签: scala

我有以下使用typeOf

scala.reflect.runtime.universe._的代码
 @Test
  def testTypeOf(): Unit = {
    import scala.reflect.runtime.universe._
    def getTypeRefInfo[T: TypeTag](x: T): (Type, Symbol, Seq[Type]) = {
      val TypeRef(pre, sym, args) = typeOf[T]
      (pre, sym, args)
    }

    println(getTypeRefInfo(10))
    println(getTypeRefInfo(Seq(1, 3.14)))

    case class Box[T: TypeTag](val data: T)
    case class Person(age: Int)

    //ERROR:No TypeTag available for Box[Int]
    println(getTypeRefInfo(Box(1)))

    //ERROR: No TypeTag available for Box[Person]
    println(getTypeRefInfo(Box(Person(1))))
  }

以上代码导致编译错误,抱怨No TypeTag available for Box[Int]No TypeTag available for Box[Person]

我会问是什么导致了这个问题,以及如何解决它。

由于

0 个答案:

没有答案