为什么bin文件夹中有这么多CLASS文件?

时间:2013-06-02 17:30:08

标签: java eclipse class bin

我在Eclipse中运行了一个Java项目,其主要可执行文件名为GreatPlaces.java。在我的/bin文件夹中,我假设只有一个名为GreatPlaces.class的CLASS文件。但是,我有几个,除了GreatPlaces.class我还有GreatPlaces$1.classGreatPlaces$2.class ... GreatPlaces$22.class。谁能解释一下这个?感谢。

3 个答案:

答案 0 :(得分:4)

美元符号由编译器用于内部类。

$符号表示内部类。如果它在number之后有$,那么它就是一个匿名的内部类。如果它在name之后有$,那么它只是一个内部类。

所以在你的情况下,这些代表了annonymouse内部类

答案 1 :(得分:4)

如果您的类中存在任何内部类,则将编译内部类,并且类文件将为ClassName$InnerClassName。如果有匿名内部类,它将显示为数字。

示例:

public class TestInnerOuterClass {
    class TestInnerChild{

    }

    Serializable annoymousTest = new Serializable() {
    };
}

将生成的类是:

  1. TestInnerOuterClass.class
  2. TestInnerOuterClass $ TestInnerChild.class
  3. TestInnerOuterCasss $ 1.class

答案 2 :(得分:2)

这些类文件对应于您在程序中使用的匿名内部类。

这是一个事件处理程序的示例,它将编译为自己的.class文件:

button.addActionLister(new ActionListener() {
    public void actionPerformed(ActionEvent e) { .... }
});