如何在 Scala 的宏注解中访问泛型类型?

How do I access generic type in Macro Annotation in Scala?

我有以下代码:

@compileTimeOnly("enable macro paradise to expand macro annotations")
class typedTable[T] extends StaticAnnotation {
  def macroTransform(annottees: Any*): Table = macro TableGenerator.impl[T]
}

object TableGenerator {
  def impl[T](c: whitebox.Context)(annottees: c.Expr[Any]*): c.Expr[Table] = {
    import c.universe._
    val tpe = weakTypeOf[T]  // This doesn't work
    ...
  }
}

而且我似乎无法弄清楚如何在宏注释中访问 'T' 的 TypeTag。我看到其他帖子模糊地提到了如何访问它,但我似乎无法弄清楚在这种情况下我应该如何访问它。

宏注释不对其参数进行类型检查,这意味着您只能从这些参数中获取树,而不是它们的类型。为了获得表示宏注释类型参数的树,请调用 c.macroApplication 并适当地对其进行解构。