我们应该直接使用 ScalaSignature 吗?

2023-11-25

Scala 签名是一个注释。它包含元信息。

  • https://github.com/scala/scala/blob/v2.9.2/src/library/scala/reflect/ScalaSignature.java

然后提供解析器。但scala-library.jar不包含解析器。看起来像是秘密 API。

  • https://github.com/scala/scala/blob/v2.9.2/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSig.scala

但我知道一些使用 ScalaSignature 的库。

  • https://github.com/lift/framework/blob/2.4-release/core/json/src/main/scala/net/liftweb/json/ScalaSig.scala
  • https://github.com/msgpack/msgpack-scala/blob/version-0.6.6/src/main/scala/org/msgpack/scalautil/ScalaSigUtil.scala
  • https://github.com/havocp/beaucatcher/blob/v0.5.0/caseclass/src/main/scala/org/beaucatcher/caseclass/ClassAnalysis.scala

顺便说一句,我找不到 ScalaSignature 的正式规范。 我担心 ScalaSignature 的规范可能会因 Scala 版本的变化而改变。 另外,我认为使用 ScalaSignature 还存在一些其他风险,因为规范不存在。

此外,Scala2.10将提供新的反射API。 我认为当 2.10 发布时,使用 ScalaSignature 的原因将会减少。

那么,应该使用 ScalaSignature 吗?


Scala 2.10 中的反射 API 提供了官方支持的 Java 反射 + Scala 签名的抽象。如果 ScalaSignature 格式发生变化,反射也会相应变化。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我们应该直接使用 ScalaSignature 吗? 的相关文章

随机推荐