我的目标是做类似的事情(是的,这会使用白盒宏)
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")
}
问题在于,这是将$ _str作为字符串文字进行处理,而不是作为类型。我知道我可能错过了一些明显的东西......