ScalaSignature是一个注释。它包含元信息。

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

  • 然后提供解析器。但是scala-library.jar不包含解析器。似乎是 secret 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中的Reflection API提供了对Java Reflection + Scala签名的正式支持的抽象。如果ScalaSignature格式更改,则反射也会相应更改。

    10-06 11:15