如果.java
文件有多个顶级类,则它可以只有一个顶级公共类,而所有其他顶级类都不能公开。
当我编译这样的.java
文件(例如javac my.java
)时,我发现每个顶级类都创建了一个.class
文件。由于除了一个顶级类之外的所有类都是非公共类,为什么仍然为每个非公共顶级类创建.class
个文件?
感谢。
答案 0 :(得分:2)
答案 1 :(得分:1)
轻率的答案是"你期望它做什么?"每个.class文件都包含要执行的JVM的字节码,Java规范要求代码中定义的每个类都成为.class文件。
更一般地说 - 请记住,编译器和JVM强制执行类(公共,私有,内部,匿名,等等......)的可见性。不是通过文件的可见性或存在。