さて、最近、私は何年も前に書いたいくつかのコードを逆コンパイルしました。したがって、私が使用するデコンパイラーは匿名クラスを逆コンパイルしません。これは、Javaコンパイラーが匿名クラスを個別のクラスとしてコンパイルしたためです。
だから、TitleScreenというファイルがあります。TitleScreen $ 1、TitleScreen $ 2で続くファイル。シンプル。しかし....なぜ数字なのか?クラスにintという名前が付けられていないため、不可能です。これらはどのように構成されますか? optionsClick()、worldsClick()のようなランダムな名前を付けるだけですか?
ありがとう!
回答:
回答№1の場合は3これらは、Javaコンパイラが匿名クラスに対して生成する名前です。
好きな名前を付けることができます。
回答№2の場合は1
コンパイラは私たちよりも強力ですプログラマーであり、その面白い構文でクラスに名前を付けることができます。おそらく、それが「安全」であることがわかるため、そのようになります。ユーザー定義クラス(以下のコメントを参照)がその名前を持っている可能性はありません。
逆コンパイルされたものに名前を付ける必要がありますクラスの場合、内部クラスにする場合はTitleScreen.Anon1、TitleScreen.Anon2を、独自のクラスにする場合はTitleScreen_Anon1をお勧めします。そうすれば、必要に応じて元のコードへの参照を得ることができます。