我一直在使用 Eclipse 作为我的 IDE。我还使用它将我的应用程序导出到 JAR 文件中。当我查看 JAR 文件中的类时,我的一些类包含该类的名称、一个美元符号,然后是一个数字。例如:
Find$1.class
Find$2.class
Find$3.class
Find.class
我注意到它在更大的班级上这样做。这是因为类变得太大了,它把它编译成多个类吗?我用谷歌搜索并查看了多个论坛,并搜索了 Java 文档,但没有找到任何与之相关的内容。有人可以解释吗?
原文由 Frizinator 发布,翻译遵循 CC BY-SA 4.0 许可协议
内部类(如果您的类中存在)将被编译并且类文件将为
ClassName$InnerClassName
。在匿名内部类的情况下,它将显示为数字。类的大小(Java 代码)不会导致生成多个类。例如给定这段代码:
将生成的类将是:
TestInnerOuterClass.class
TestInnerOuterClass$TestInnerChild.class
TestInnerOuterCasss$1.class
更新:
使用匿名类并不被认为是一种不好的做法,它只取决于用法。
检查关于 SO 的 讨论