5

Scalaのこのビット(バージョン2.8.1ファイナル)の結果としてコンパイルされたクラスでjavap -vを実行する場合:

クラスPoint(x:Int、y:Int)

定数プールエントリに対して次の出力が表示され、印刷できない文字を示すいくつかの端末のビープ音が鳴りますか?

#19 = Utf8               Lscala/reflect/ScalaSignature;
#20 = Utf8               bytes
#21 = Utf8               \t2\"\t!!>Lg9A(Z7qift4A\nqCA\r!BA
                                                        aM\4
                                                            -\tAA[1wC&Q\nTWm;=R\"\t
                                                                                     E\tQa]2bYL!a\tMr\1PE*,7\r\t+\t)A-\t/%:$

eDu\taP5oSRtDc!CAqA!)Qca-!)!da-
#22 = Utf8               RuntimeVisibleAnnotations
#23 = Utf8               Point
#24 = Class              #23            //  Point

何が起こっているのか、そしてその理由は何か考えはありますか?CONSTANT_Utf8エントリでバイナリガベージをこれまで見たことがありません。

私はMac10.6でOpenJDK7ビルドを使用していますが、それが違いを生む場合は、明日、他のOSで遊んでいるときに複製を試み、それに応じて更新します。

4

1 に答える 1

8

ScalaSignature要素は、Scalaが必要とする追加の型情報が格納される場所です。リフレクションツールで使用できるように、注釈に保存(明らかにエンコード)されています。

于 2011-04-07T21:06:09.310 に答える