【发布时间】:2013-06-28 07:26:38
【问题描述】:
我的宏中有某种类型的WeakTypeTag,我想生成如下代码:
macroCreate[SomeObject] // => SomeObject(1)
宏的定义是这样的:
def macroCreate[A] = macro _macroCreate[A]
def _macroCreate[A](c: Context)(implicit wtt: c.WeakTypeTag[A]) = {
c.Expr(Apply(Select(???, newTermName("apply")), List(c.literal(1).tree)))
}
问题是,我如何获得给定类型的Select?
我可以使用一种解决方法将类型转换为字符串,在"." 上拆分,然后从字符串列表中创建一个Select,但这似乎很老套。
是否可以直接从类型标签创建Select?
【问题讨论】:
标签: scala macros scala-2.10 scala-macros