我正在查看 scala reflect API,我遇到了很多异常。
文档参考: http ://docs.scala-lang.org/overviews/reflection/environment-universes-mirrors.html
如何从泛型中获取类型标签?
def getChildSettings[T: ru.TypeTag](path: String, settingsParameterObject: T) = {
import scala.reflect.runtime.{ currentMirror => m }
val m = ru.runtimeMirror(getClass.getClassLoader)
val classC = ru.typeOf[T].typeSymbol.asClass
}
我得到一个例外:
No TypeTag available for ParameterObject.type
即使是一个非常简单的示例似乎也不起作用(编辑是的,它在 repl 中起作用)
import scala.reflect.runtime.universe._
import scala.reflect.runtime.currentMirror
import scala.reflect.runtime.{universe => ru}
def getTypeTag[T: ru.TypeTag](obj: T) = ru.typeTag[T]
case class ParameterObject(stringType: String, optionType: Option[String])
getTypeTag(ParameterObject)
我猜这与我如何调用该方法有关。