在 Java 中,您可以在单个文件中定义多个顶级类,前提是其中至多有一个是公共的(参见 JLS §7.6 )。例如,请参见下文。
这种技术是否有一个简洁的名称(类似于
inner
,nested
,anonymous
)?JLS 表示系统 可能会 强制执行这些次要类不能是
referred to by code in other compilation units of the package
的限制,例如,它们不能被视为包私有的。这真的会在 Java 实现之间发生变化吗?
例如,PublicClass.java:
package com.example.multiple;
public class PublicClass {
PrivateImpl impl = new PrivateImpl();
}
class PrivateImpl {
int implementationData;
}
原文由 Michael Brewer-Davis 发布,翻译遵循 CC BY-SA 4.0 许可协议
我建议将这种技术(包括单个源文件中的多个顶级类)命名为“mess”。说真的,我不认为这是个好主意——在这种情况下我会使用嵌套类型。然后预测它在哪个源文件中仍然很容易。不过我不认为这种方法有官方术语。
至于这是否真的在实现之间发生了变化——我非常怀疑,但如果你一开始就避免这样做,你就永远不需要关心 :)