私が証明しようとしている2つのクラスファイルが、まったく同じScalaソースから生成されたものです。
クラスファイルをJavaに逆コンパイルすると、意味的にまったく同じ2つの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
---
1つのファイルから、および他のファイルから:
...
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
...
2つのクラスファイルが同じScalaソースから取得され、同じScalaSig、Signatureなどでアノテーションが付けられていても、@ ScalaSignatureアノテーションが異なる可能性はありますか?
ありがとう。