为什么仍然为Javac为每个非公共顶级类创建一个.class'文件

  • 本文关键字:创建 文件 class 一个 Javac java
  • 更新时间 :
  • 英文 :


如果.java文件具有多个顶级类,则可以完全拥有一个顶级公共类,并且所有其他顶级类都不能公开。

当我编译这样的.java文件(例如javac my.java)时,我发现每台顶级类都创建了.class文件。由于除了一个顶级类以外的所有除外都是非公开的,所以为什么仍然为每个非公共顶级类创建一个.class文件?

谢谢。

来自JVM规格:

每个类文件包含单个类,接口或模块的定义。

可见性不会影响这一点。

轻率的答案是"您希望它能做什么?"每个.class文件包含供JVM执行的字节码,Java规范要求代码中定义的每个类都成为.class文件。

更一般地 - 请记住,班级(公共,私人,内在,匿名,任何...)的可见性是由编译器和JVM执行的。不是通过文件的可见性或存在。

最新更新