为什么在运行时无法访问用Scala编写的注释?

时间:2016-07-28 21:42:20

标签: scala annotations runtime

我在最新文档中发现了一个声明:

It must be defined in Java instead of Scala so it will be accessible at runtime.

这是非常奇怪的,因为我认为Scala注释比Java对应更强。为什么缺少此功能?是否有计划将其添加回来?

1 个答案:

答案 0 :(得分:4)

没有已知的计划在运行时保留Scala支持注释(该问题已知有一段时间,但正如this page所述,它不会被修复)。

Lukas Rytz,一位Scala提交者,在scala-language邮件列表的a post上进行了解释:

  

这绝对不是一件轻而易举的事。 Java注释具体   字节码中的表示[...],   这需要更改Scala的字节码生成器。

     

java注释的语言也很特别,不同于   Java语言的其余部分[...],因此需要定义   如何在Scala类中表示它。