根据JLS,只要文件中只有一个类是公共的,在一个文件中就有多个类是有效的语法。据我了解,这通常是为了让只在单个文件中引用的小类在该文件中被维护。如果文件中有多个包专用类,它们是否可以从包中的其他文件引用?
我不确定的一个方面是,如果同一个包中的其他文件能够安全地引用原始文件中的第二个类 - 通过范围规则它看起来有效,但我不确定是否编译时出现问题。我已经看到它的工作频率很高,但项目的其他开发人员也告诉我,在系统中的其他地方进行更改后,偶尔会出现构建问题,发现有问题的符号。这种设置是指引用嵌入在其他类文件中的包私有类,将某种排序的编译顺序依赖性引入到使构建易碎的过程中?