在编译井字游戏的代码以及使用 swing 和 awt 包在 java 中运行一些代码时。我得到了一个附加的类文件生成,与 ClassName.class 文件平行。可能是什么原因?它是否由于 ActionListeners 的使用而发生。通常在执行涉及结构的 C 程序时会生成此类 .bak 文件的创建。
这两种情况需要支持。
在编译井字游戏的代码以及使用 swing 和 awt 包在 java 中运行一些代码时。我得到了一个附加的类文件生成,与 ClassName.class 文件平行。可能是什么原因?它是否由于 ActionListeners 的使用而发生。通常在执行涉及结构的 C 程序时会生成此类 .bak 文件的创建。
这两种情况需要支持。
名称中包含的类文件$不过是您可能在顶级类中使用过的inner classesor 。anonymous inner classes
例如,如果您有这样的类声明:-
public class A {
public class B {
}
}
然后您将生成两个类文件: -A.class和A$B.class. class B这显示了里面的遏制class A。
如果ActionListener发生这种情况,请在您的代码中。
更新: -
如果您正在使用anonymous inner class,那么您还将获得其中的类名$:-
interface A {
public void show();
}
public class Foo {
public static void main(String[] a) {
new A() {
@Override
public void show() {
System.out.println("Hello");
}
}.show();
}
}
然后生成的类文件将是: -Foo.class和Foo$1.class.
因此,如果您将ActionListener其用作匿名内部类,那么您也会$以您的class file名义获得 that anonymous inner class。
是的,Java 编译器会将Bar“主”Foo类的内部类编译为 Foo$Bar...
那是:
class Foo {
class Bar {
}
}
会创造Foo.class和Foo$Bar.class
你为什么要问?我的意思是,真正的问题是什么?
干杯。基思。