检查 Eclipse 生成的 JAR 文件时,用户偶尔会遇到带有美元符号 ($) 后跟数字的类。这种现象在较大的类中尤其明显,引发了人们的疑问:它是否表示该类的多个编译版本。
类名称中存在美元符号表示内部类。这些是外部类中定义的附加类。编译器为每个内部类分配一个唯一的编号来区分它们。
例如,以下代码定义了一个具有两个嵌套类的外部类:
<code class="java">public class Find { private class InnerClass1 {} private class InnerClass2 {} }</code>
编译后,以下类将生成文件:
此外,匿名内部类,即在一条语句中声明和实例化的类,也用美元符号后跟数字表示。
<code class="java">public class Main { public static void main(String[] args) { new Thread() { // Anonymous inner class // Override run() method }.start(); } }</code>
在此示例中,匿名内部类将生成一个类文件名为 Main$1.class.
与最初的假设相反,外部类的大小并不能决定是否会生成内部类。内部类仅根据嵌套类的存在而生成,而不管外部类的大小。
以上是## 编译的 Java 类中的美元符号是什么以及它们的含义是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!