我有两个类文件,我试图证明它们是从同一个 Scala 源生成的。
将类文件反编译成 Java 后,我得到了两个语义完全相同的 Java 文件。但是,它们内部有不同的 @ScalaSignature 注释。在类文件上运行“javap -verbose”时得到以下输出:
...
SourceFile: "ABC.scala"
ScalaSig: length = 0x3
05 00 00
Signature: #140 // <T:Ljava/lang/Object;>Lcom/xyz/ABC;Lscala/ScalaObject;Lscala/Product;
Lscala/Serializable;
RuntimeVisibleAnnotations:
0: #141(#142=s#143)
minor version: 0
major version: 49
flags: ACC_PUBLIC, ACC_SUPER
---
从一个文件和另一个文件:
...
SourceFile: "ABC.scala"
ScalaSig: length = 0x3
05 00 00
Signature: #140 // <T:Ljava/lang/Object;>Lcom/xyz/ABC;Lscala/ScalaObject;Lscala/Product;
Lscala/Serializable;
RuntimeVisibleAnnotations:
0: #141(#142=s#143)
minor version: 0
major version: 49
flags: ACC_PUBLIC, ACC_SUPER
...
这两个类文件是否有可能从同一个 Scala 源获得,使用相同的 ScalaSig、Signature 等进行注释,但具有不同的 @ScalaSignature 注释?
谢谢。