我有许多用 Eclipse 编译的 .java 类,在/bin 目录中我看到不仅有与我的 Java 类对应的各种 .class 文件,还有一些文件名中带有美元符号.
示例:我有一个名为 RangeFinder 的类,在/bin 中我看到一个 RangeFinder.class 和一个 RangeFinder$1.class。
后者的意义是什么?
(我在 Ubuntu 上使用 Eclipse EE Indigo。)
最佳答案
这些是字节码形式的匿名内部类。编译器赋予它们以1
开头的数字名称(在Java中不允许类名以数字开头,但在字节码中是可以的,所以编译器这样做是为了避免名称冲突, 我猜)。普通(命名)内部类的命名方式类似于 OuterType$InnerType.class
。
关于java - myClass$1.class 类的 Java 类文件有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6913317/