【问题标题】:Why annotations written in Scala are not accessible at runtime?为什么在运行时无法访问用 Scala 编写的注释?
【发布时间】:2016-07-28 21:42:20
【问题描述】:

我在 scalatest 文档中看到了一个声明:

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

这很奇怪,因为我的印象是 Scala 注释比它的 Java 注释更强大。为什么缺少此功能?有计划加回来吗?

【问题讨论】:

标签: scala annotations runtime


【解决方案1】:

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

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

这绝对不是微不足道的。 Java注解有特定的 字节码中的表示 [...], 这需要更改 Scala 的字节码生成器。

另外java注解的语言比较特殊,不同于 Java 语言的其余部分 [...],因此需要定义 这如何在 Scala 类中表示。

【讨论】:

  • 哇,我不知道它有那么复杂,但我假设所有 scala 专家都知道一些 Java 和反射,所以这不会是一个大问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
  • 2018-01-20
  • 1970-01-01
相关资源
最近更新 更多