一个Java文件,但两个类
我的项目中有几节课。编译之后,我找到了两个java文件,分别对应于name.class和name$.class。原因是什么?我看不出这些课程有什么特别之处一个Java文件,但两个类,java,compilation,Java,Compilation,我的项目中有几节课。编译之后,我找到了两个java文件,分别对应于name.class和name$.class。原因是什么?我看不出这些课程有什么特别之处 问候语这是一个匿名的内部类,如示例: new Runnable() { ... } 编辑:评论中的一些有效点: enum类型也被编译到一个单独的类文件中(因为它们实际上是类) 匿名内部类按顺序编号(MyClass$1.class,MyClass$2.class等) 命名了不一致的内部类(例如,MyClass$InnerNamedClass
问候语这是一个匿名的内部类,如示例:
new Runnable() { ... }
编辑:评论中的一些有效点:
类型也被编译到一个单独的类文件中(因为它们实际上是类)enum
- 匿名内部类按顺序编号(
,MyClass$1.class
等)MyClass$2.class
- 命名了不一致的内部类(例如,
)MyClass$InnerNamedClass.class
new Runnable() { ... }
编辑:评论中的一些有效点:
类型也被编译到一个单独的类文件中(因为它们实际上是类)enum
- 匿名内部类按顺序编号(
,MyClass$1.class
等)MyClass$2.class
- 命名了不一致的内部类(例如,
)MyClass$InnerNamedClass.class
- 在公共类中有一个内部类(匿名或命名)。这种行为是正常的;Java编译器将为每个类生成一个.class文件,无论源文件中定义了多少个类。公共类中有一个内部类(匿名或命名)。这种行为是正常的;Java编译器将为每个类生成一个.class文件,无论源文件中定义了多少个类。Java编译器将为.Java文件中定义的每个类创建一个.class文件。您应该有这样一个匿名内部类:
button.addListener(new PressListener() {
public void onPressed(Event event) {
System.out.print("test");
}
});
Java compile为.Java文件上定义的每个类创建一个.class文件。您应该有这样一个匿名内部类:
button.addListener(new PressListener() {
public void onPressed(Event event) {
System.out.print("test");
}
});
Java中的内部类被编译成
类$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.
}
};
然后使用数字,这将是
类$1
Java中的内部类被编译为类$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.
}
};
然后使用数字,因此这将是
类$1
请发布您的类定义。可能重复:编译器将为每个类创建一个类文件。。。即使在同一个.java文件中定义了多个类。的可能重复项请发布您的类定义。可能重复项:编译器将为每个类创建一个类文件。。。即使在同一个.java文件中定义了多个类。如果您有多个匿名内部类,它们也将被称为MyClass$、MyClass$1、MyClass$2等。感谢您的快速回答。我有两个run()线程。这将解释这两个类。如果您有多个匿名内部类,它们将被称为MyClass$、MyClass$1、MyClass$2等。感谢您的快速回答。我有两个run()线程。所以它可以解释这两个类。