我一直使用Eclipse作为我的开发IDE。 我还使用它将我的应用程序导出到一个。jar文件中。 当我在。jar文件中查看我的类时,我的一些类包含了该类的名称,一个美元符号,然后是一个数字。 示例:
我注意到它在更大的类上是这样的。 这是因为类变得这么大,它把它编制成多个类吗? 我已经在多个论坛上搜索了谷歌,搜索了Java的文档,但没有找到任何与之相关的东西。 有人能解释一下吗?
内部类(如果在您的类中存在)将被编译,类文件将是classname$innerclassname
。 如遇匿名内类,则以数字形式出现。 类的大小(Java代码)不会导致多个类的生成。
例如。 给定这段代码:
public class TestInnerOuterClass {
class TestInnerChild{
}
Serializable annoymousTest = new Serializable() {
};
}
将产生的类为:
TestInnerOuterClass.class
TestInnerOuterClass$TestInnerChild.class
TestInnerOuterCass$1.class
更新:
使用匿名类并不被认为是一个不好的实践,它只是取决于使用情况。
在SO上检查此讨论
这是因为在这个更大的类中,你有匿名的类。 它们使用此命名约定进行编译。
查看匿名类难题
除了@mprabhat提出的上述案例之外,其他案例可能是:
这些案例是我对JAR中的。class文件进行检查的衍生结果。