3

java コンパイラが単一の java ファイルに対して複数の .class ファイルを生成するのはなぜですか?

私はいくつかの Java コード Deadlock.java を作成しました。これをコンパイルすると、 Deadlock$someNumber.class という名前の複数のクラスが生成されました。

なぜこれが起こるのですか.??

それの意義は何ですか??

4

3 に答える 3

3

同じファイルに複数のクラスがある場合 (そのうちの 1 つは public である必要があり、ファイルと同じ名前を持っています)、Person.java ファイルに次のようなものがあるとします。

    public class Person{
}
class Classroom{
}

コンパイラは、ファイル Person.java 内のクラスごとにクラスを作成します。

于 2013-03-29T15:54:48.730 に答える
1

これらは匿名クラスです。コードにはnew SomeInterface(){}and/orのようなものが含まれていnew SomeClass(){}ます。

于 2013-03-29T15:49:58.073 に答える
1

匿名の内部クラスを使用すると、通常はそうなると思います。これらのクラスはそれぞれクラスファイルを取得しますが、名前を宣言していないため、番号を取得します。したがって、作成した名前のないクラス宣言 (おそらく Runnable や Listeners など) は、おそらくそれらを作成しています。

于 2013-03-29T15:50:40.347 に答える