在Scala语言规范中,§6.14带注释的表达式:
带注释的表达式e:@ a1 ... @an将注释a1,...,an附加到表达式e。
虽然我可以在类(及其成员值和方法)上获得注释,但我找不到在运行时获取表达式注释的方法。
说我有val x = C(f1 = v1 : @a1, f2 = v2 : @a2)
,如何从x的字段中获取注释@a1
和@a2
? (其中C是案例类,@ aX可能是自定义注释)
答案 0 :(得分:0)
使用运行时反射我不相信你可以访问任何表达式(注释值和默认参数值除外;可能还有其他我忽略的东西),因此你无法访问它们上的任何注释。
您需要C
或C.apply
作为宏(或使用编译器插件)。