4

Eclipse で動作する Java プロジェクトがあり、メインの実行可能ファイルはGreatPlaces.java. 私の/binフォルダには、GreatPlaces.class. ただし、...GreatPlaces.classを除いて、いくつかあります。誰でもこれを説明できますか?ありがとう。GreatPlaces$1.classGreatPlaces$2.classGreatPlaces$22.class

4

3 に答える 3

4

クラスに存在する内部クラスがコンパイルされ、クラスファイルがClassName$InnerClassName. 匿名の内部クラスの場合、数値として表示されます。

例:

public class TestInnerOuterClass {
    class TestInnerChild{

    }

    Serializable annoymousTest = new Serializable() {
    };
}

生成されるクラスは次のとおりです。

  1. TestInnerOuterClass.class
  2. TestInnerOuterClass$TestInnerChild.class
  3. TestInnerOuterCasss$1.class
于 2013-06-02T17:32:08.913 に答える
4

The dollar sign is used by the compiler for inner classes.

$ sign represents inner classes. If it has a number after $ then it is an annonymous inner class. If it has a name after $ then it is only an inner class.

So in your casese these are representing annonymouse inner classes

于 2013-06-02T17:32:02.430 に答える
2

これらのクラス ファイルは、プログラムで使用する匿名内部クラスに対応しています。

独自の .class ファイルにコンパイルされるイベント ハンドラーの例を次に示します。

button.addActionLister(new ActionListener() {
    public void actionPerformed(ActionEvent e) { .... }
});
于 2013-06-02T17:34:04.157 に答える