首页 > Java > java教程 > 为什么 Java 编译的类包含类似'Find$1.class”的名称?

为什么 Java 编译的类包含类似'Find$1.class”的名称?

Patricia Arquette
发布: 2024-10-26 00:45:27
原创
995 人浏览过

Why do Java compiled classes contain names like

在 Java 编译类中表示内部类

在 Java 中,将应用程序导出到 JAR 文件时,某些类可能包含类名后跟美元符号和数字,例如 Find$1.class。发生这种情况是因为 Java 与主类分开编译内部类,包括匿名内部类。

在另一个类中定义的内部类支持面向对象的编程概念,例如封装和代码可重用性。它们是编译器生成的,它们的类文件具有以下命名约定:

  • 命名内部类: OuterClass$InnerClass.class
  • 匿名内部类classes: OuterClass$1.class (其中1代表匿名类)

例如下面的代码:

<code class="java">public class OuterClass {
    public class InnerClass {
        // ...
    }

    public static void main(String[] args) {
        OuterClass.InnerClass inner = new InnerClass();
    }
}</code>
登录后复制

编译会生成以下class文件:

  • OuterClass.class
  • OuterClass$InnerClass.class

类文件名中的美元符号用作分隔符来区分外部和内部类。表示内部类属于指定的外部类。

以上是为什么 Java 编译的类包含类似'Find$1.class”的名称?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板