This question already has answers here:
Java: Multiple class declarations in one file
                                
                                    (9个答案)
                                
                        
                                3年前关闭。
            
                    
在旧版应用程序的代码中,我遇到了一个包含内部类的类文件,但是这些内部类不是在类主体中定义的,而是在类定义的右括号之后。

看起来像这样:

MyClass.java

public class MyClass {

    // class body

}

class DataStructure1 {

    String field1;

    Integer field2;

}

class DataStructure2 {

    Date field3;

    String field4;

}


显然,编译器不会抱怨,但是我很生气,因为我以前从未见过这样的东西。


这是有效的内部类吗?
主体中定义的类有什么区别(除了缩进)?

最佳答案

据我所知,这些根本不是内部类,而是恰好在同一源文件中的另外两个包私有类。在给定的.java文件中具有多个类定义是完全可以接受的。

顾名思义,内部类必须在包含外部类的内部定义。这里情况不同。

关于java - 内部类(class)在类(class)文件中,但不在类(class)正文中? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39449922/

10-16 06:20