我希望将StaticAnnotation的参数定义为:
class Log(logTag: List[LogTag] = Info() :: Nil )
(implicit logger: String => Unit = a => {println(a)})
extends scala.annotation.StaticAnnotation {
inline def apply(defn: Any): Any = meta {
val logTag = ??? //todo
val logger = ??? //todo
}
}
如何在logTag
块中获取logger
和meta
函数值?
关于这一点,我似乎meta tutorials。但Lit
只是引用Int
/ Double
等,而不是自定义类类型。
答案 0 :(得分:0)
您可以将this
解构为scala.meta.Tree
以获取类参数。有关示例,请参阅http://scalameta.org/tutorial/#HowdoIpassanargumenttothemacroannotation%3F