【发布时间】:2019-01-12 21:50:32
【问题描述】:
当我偶然发现重复的课程时,我今天去查看我的课程文件夹以提交项目。 例如,我的班级将被称为 MainPro.class,并且会有重复,例如 MainPro$1.class、MainPro$2.class 等。
适用于使用 java.swing 的 GUI 项目
我不确定这些是什么,我不敢删除它,以防它毁了我的课程。
谢谢。
【问题讨论】:
当我偶然发现重复的课程时,我今天去查看我的课程文件夹以提交项目。 例如,我的班级将被称为 MainPro.class,并且会有重复,例如 MainPro$1.class、MainPro$2.class 等。
适用于使用 java.swing 的 GUI 项目
我不确定这些是什么,我不敢删除它,以防它毁了我的课程。
谢谢。
【问题讨论】:
它们是匿名类的类文件。例如,如果你写
Foo = new Foo() {
....
}
那么这就是定义一个扩展类 Foo 但没有名称的类。编译器将根据定义出现的文件的名称,加上一个美元符号和一个数字来创建一个类文件。
“MainFile$N”类可能还有其他原因,但这是一个例子。
它们是在您编译 Java 源代码时创建的。它们是执行程序所必需的,但与任何 .class 一样,它们将在下一次编译定义它们的文件时重新生成(在您的情况下为 MainPro.java)
【讨论】: