在java中编译Tic Tac Toe游戏程序时,会创建一个(附加$ name).class

Ran*_*ate 0 java

在编译Tic Tac Toe的代码时,同时使用swing和awt包在java中运行一些代码.我正在获得$附加的类文件生成,与ClassName.class文件并行.可能是什么原因?它是否由于ActionListeners的使用,它发生了.通常这些.bak文件的创建将在执行涉及结构的C程序时生成.

需要支持这两种情况.

Roh*_*ain 5

含类文件$中他们的名字是什么,但inner classes还是anonymous inner classes那你可能也有顶级类内部使用.

例如,如果你有这样的类声明: -

public class A {
    public class B {
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你将生成两个类文件: - A.classA$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();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后生成的类文件将是: - Foo.classFoo$1.class.

所以,如果你使用ActionListener匿名内部类,那么你也会$以你的class file名义得到它anonymous inner class.