【发布时间】:2013-06-20 16:43:16
【问题描述】:
为了简化我的场景, 我有一个类型对象,它是 Some[String] 或 Some[Int] 或 None。 我是否能够获取该 Type 对象并以某种方式将参数 Type 获取到另一个对象中?
例如
scala> import scala.reflect.runtime.universe._
import scala.reflect.runtime.universe._
scala> val tt = typeTag[Some[String]]
tt: reflect.runtime.universe.TypeTag[Some[String]] = TypeTag[scala.Some[String]]
scala> val tpe = tt.tpe
tpe: reflect.runtime.universe.Type = scala.Some[String]
所以你的类型是 Some[String]。 如何将参数类型从那里获取到 Type 对象中?
【问题讨论】:
-
宏是编译时间而不是运行时反射
-
@Senia 我需要 typeArgument 的参数。
-
是的,但是类型 API 完全一样,这就是重点。无论如何,@senia 的链接中的答案会给你类型
String给定Some[String]的类型,我认为这是你需要的? -
好的 - 谢谢 - 我会试试看。我发现反射 api 很难导航...感谢您的帮助。
标签: scala reflection scala-2.10