ScalaSignature 是一个注解。它包含元信息。
然后提供解析器。但scala-library.jar
不包含解析器。这似乎是秘密 API。
但我知道一些使用 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。我认为使用 ScalaSignature 的原因会随着 2.10 的发布而减少。
因此,应该使用 ScalaSignature 吗?