首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否为一个类生成多个.class文件?

是否为一个类生成多个.class文件?
EN

Stack Overflow用户
提问于 2009-06-23 11:22:26
回答 7查看 15.3K关注 0票数 17

出于好奇,为什么有时编译后会为一个类生成多个Java .class文件?例如,我的应用程序有六个类。对于一个类,从MyClass#1到MyClass#10,总共生成了10个.class文件。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-06-23 11:23:23

这些是针对inner classesstatic nested classes的。带数字的是匿名内部类。

例如:

代码语言:javascript
复制
class Foo {
   class Bar { }
   static class Baz { }
   void run() {
      Helper t = new Helper() {
         int helpMethod() {
            return 2;
         }
      };
    }
}

这将生成类文件Foo.classFoo$Bar.classFoo$Baz.classFoo$1.class (用于实现Helper接口)

票数 31
EN

Stack Overflow用户

发布于 2009-06-23 11:53:41

在以下情况下,您可以从单个源文件中获得更多.class文件

  • 该类包含内部类或静态内部类。内部类可以嵌套。它们的名称是<outer class name>$<inner class name>.
  • inner接口,它们始终是static.
  • anonymous内部类(实际上是没有名称的普通内部类)、
  • 包访问接口和主类前后的类。您可以在单个Java源文件中拥有任意数量的包访问类和接口。通常,只由类使用的小帮助器对象只是放在同一个文件中。
票数 5
EN

Stack Overflow用户

发布于 2009-06-23 11:23:31

如果您的类包含内部类,则一个java源文件可以生成多个类文件。匿名内部类由编号的类文件表示。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1031962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档