Scala 如何获取字符串,操纵它,然后在宏中实例化该类?

Scala 如何获取字符串,操纵它,然后在宏中实例化该类?,scala,scala-macros,Scala,Scala Macros,我的目标是做一些类似的事情,是的,这使用了白盒宏 def apply_impl(c: Context)(str: c.Expr[String]): c.Expr[Any] = { import c.universe._ val Literal(Constant(_str: String)) = str.tree val _str2 = getClassFromString(_str) c.Expr(q"new $_str") } 问题在于,这是将$\u str转换为字符串文字,

我的目标是做一些类似的事情,是的,这使用了白盒宏

def apply_impl(c: Context)(str: c.Expr[String]): c.Expr[Any] = {
  import c.universe._
  val Literal(Constant(_str: String)) = str.tree
  val _str2 = getClassFromString(_str)
  c.Expr(q"new $_str")
}

问题在于,这是将$\u str转换为字符串文字,而不是类型。我知道我可能遗漏了一些明显的东西…

FWIW我确实在repl中使用showRaw解决了这个问题,并且只是自己构造了这个术语,但是准晶石要优雅得多!目前无法检查,但我认为qnew${TypeName\u str}应该可以使用。您是否尝试过c.Exprqnew${tq\u str}?