带有美元符号的 Java 编译类
Java 程序员经常在编译的类文件中遇到特殊的命名约定。一些类的类名呈现出奇怪的模式,后面跟着一个美元符号和一个数字。例如,您可能会看到如下文件:
深入探究原因
与普遍看法相反,班级的规模不会触发此行为。答案就在内部类。当类包含内部类时,编译器会为这些内部类生成单独的类文件。文件名遵循以下模式:
OuterClass.class OuterClass$InnerClass.class
匿名内部类
匿名内部类在没有自定义名称的情况下定义,并分配有数字。这解释了“Find$1.class”和类似的文件名。
示例
考虑以下代码片段:
public class OuterClass { class InnerClass { } Serializable anonymous = new Serializable() { }; }
编译器将生成以下类文件:
考虑匿名类吗?
匿名内部类的使用一直存在争议。有些人认为这是一种代码味道,而另一些人则认为它在某些情况下是否合适。最终,使用它们的决定取决于具体的设计要求。
以上是为什么 Java 编译类有美元符号?的详细内容。更多信息请关注PHP中文网其他相关文章!