我需要生成:
case class Foo(param: Bar = BarEnum.SomeCaseObject)
但是这段代码:
val term = TermName("BarEnum.SomeCaseObject")
showCode(q"""case class Foo(val param : Bar = ${term})""")
输出由反引号包围的默认参数,它不会编译:
case class Foo(param: Bar = `BarEnum.SomeCaseObject`)
如何在没有反引号的情况下获得默认参数值输出?
您正在尝试创建名为“BarEnum.SomeCaseObject”的值,这是非法标识符,因此在反引号中。
您可以使用Select(Ident(TermName("BarEnum")), TermName("SomeCaseObject"))
或(更好)q"BarEnum.SomeCaseObject"
(假设这SomeCaseObject
是一个术语)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句