Scala:我如何获得表达式的注释?

时间:2016-11-14 09:51:40

标签: scala annotations

在Scala语言规范中,§6.14带注释的表达式:

  

带注释的表达式e:@ a1 ... @an将注释a1,...,an附加到表达式e。

虽然我可以在类(及其成员值和方法)上获得注释,但我找不到在运行时获取表达式注释的方法。

说我有val x = C(f1 = v1 : @a1, f2 = v2 : @a2),如何从x的字段中获取注释@a1@a2? (其中C是案例类,@ aX可能是自定义注释)

1 个答案:

答案 0 :(得分:0)

使用运行时反射我不相信你可以访问任何表达式(注释值和默认参数值除外;可能还有其他我忽略的东西),因此你无法访问它们上的任何注释。

您需要CC.apply作为宏(或使用编译器插件)。