java编译的类包含美元符号

僵尸

我一直在使用Eclipse作为开发IDE。我还使用它将我的应用程序导出到.jar文件。当我查看.jar​​文件中的类时,我的一些类包含该类的名称,一个美元符号和一个数字。例:

  • 查找$ 1.class
  • 查找$ 2.class
  • 查找$ 3.class
  • 查找类

我注意到它是在较大的班级上这样做的。这是因为类太大了,将其编译成多个类吗?我在Google上搜索了多个论坛,并搜索了Java文档,但没有找到任何相关的内容。有人可以解释吗?

mprabhat:

内部类(如果您的类中存在)​​将被编译,并且类文件将为ClassName$InnerClassName如果是匿名内部类,它将显示为数字。类的大小(Java代码)不会导致生成多个类。

例如给出这段代码:

public class TestInnerOuterClass {
    class TestInnerChild{

    }

    Serializable annoymousTest = new Serializable() {
    };
}

将生成的类为:

  1. TestInnerOuterClass.class
  2. TestInnerOuterClass$TestInnerChild.class
  3. TestInnerOuterCasss$1.class

更新:

使用匿名类并不认为是坏习惯,它仅取决于用法。

检查对SO讨论

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果存在内部类,则包含美元符号的Java类名称无法编译

SED变量包含美元符号

使Java编译器在类文件中包含符号常量字段引用-可能吗?

运行包含即使编译成功后,另一Java类文件时,“无法找到符号错误”

使用单个美元符号“ $”作为Java类名称会有任何风险吗?

无法从 linux 调用 sqlplus,其中密码包含 $ 美元符号

如果包含美元符号 (${var}),则无法读取属性

Maven替代品:包含美元符号的替代价值

包含美元符号的参数字符串

包含美元定界变量的Java属性

修改Java类以在编译时包含特定注释

Gradle将编译的Java类包含为模块依赖项

编译包含“Aux”类的 Java 文件时出错

关于美元符号:美元符号内的美元符号?

由于出现“找不到符号类X”错误,因此无法在Intellij Idea中编译Java类

使用SQL星火在Java函数调用美元符号

我无法在带格式的数字(Java)之后添加美元符号

Java-RegEx替换美元符号之间的文本

Maven变量:美元与符号?

美元符号变量

SELECT $(美元符号)

普遍逃脱美元符号

AngularJS美元符号$()用法

不能代替美元符号

Java类是使用调试符号编译的,但是stacktrace中没有显示行号?

从命令行编译Java类时找不到符号错误

为什么在反编译的Java类中出现错误时出现$符号?

使用包含美元符号和感叹号的密码连接数据库

如何阻止GNU make干扰包含美元符号的文件名?