我的项目中有几门课。编译后,我为每个类找到了两个 java 文件:name.class 和 name$.class。这可能是什么原因?我看不出这些课程有什么特别之处。
问候
我的项目中有几门课。编译后,我为每个类找到了两个 java 文件:name.class 和 name$.class。这可能是什么原因?我看不出这些课程有什么特别之处。
问候
它是一个匿名内部类,例如:
new Runnable() { ... }
编辑:评论中的一些有效观点:
enum
类型也被编译成单独的类文件(因为这些实际上是类)MyClass$1.class
,MyClass$2.class
等)MyClass$InnerNamedClass.class
)您的公共类中有一个内部类(匿名或命名)。这种行为是正常的;Java 编译器将为每个类生成一个 .class 文件,无论源文件中定义了多少类。
Java compile 为 .java 文件上定义的每个类创建一个 .class 文件。你应该有一个像这样的匿名内部类:
button.addListener(new PressListener() {
public void onPressed(Event event) {
System.out.print("test");
}
});
Java 中的内部类被编译为Class$InnerClass
.
如果您已命名类,则使用类的名称。如果类是匿名的,即你有类似的东西:
final ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
};
然后使用数字,所以这将是Class$1
。