我有以下使用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]
我会问是什么导致了这个问题,以及如何解决它。
由于